称号:CW输出矩阵(N*N)。

如果一个矩阵:

1   2   3   4

5   6   7   8

9  10 11 12

13 14 15 16

那么程序应该给出的输出为:1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10

这个问题在网上也搜集了一下答案,没有什么巧妙的办法,所以以下给出的是全然依照顺时针走向输出的一个代码(自己亲手编写,測试通过):

#include <stdio.h>
#define N 5 //矩阵的维度 void clockwise_matrix(int matrix[][N])
{
int starta = 0, startc = 0, enda = N-1, endc = N-1;
int array, column, i; while(1) {
for(i = 0; startc+i <= endc; i++) { //横向递增
printf("%3d ", matrix[starta][startc+i]);
}
if(starta < enda) { //这个推断是为了使矩阵剩余的部分仅仅剩下一行的时候的特殊情况处理
for(i = 1; starta+i <= enda; i++) { //竖向递增
printf("%3d ", matrix[starta+i][endc]);
}
for(i = 1; endc-i >= startc; i++) { //横向递减
printf("%3d ", matrix[enda][endc-i]);
}
for(i = 1; enda-i > starta; i++) { //竖向递减
printf("%3d ", matrix[enda-i][startc]);
}
} starta ++;
startc ++;
enda --;
endc --;
if(starta > enda) {
break;
}
}
} int main()
{
int i, j;
int matrix[N][N]; for(i = 0; i < N; i++) //给測试数组赋值
for(j = 0; j < N; j++) {
matrix[i][j] = i*N + j;
} printf("The test matrix is :\n"); //打印出測试数组
for(i = 0; i < N; i++) {
for(j = 0; j < N; j++) {
printf("%3d ", matrix[i][j]);
}
printf("\n");
}
printf("\n");
clockwise_matrix(matrix);
printf("\n");
return 0;
}

以下是程序在ubuntu下执行的结果(程序中的维度能够改动。自己測试过1~7没有问题):

版权声明:本文博客原创文章。博客,未经同意,不得转载。

笔试题&amp;面试题:CW输出矩阵的更多相关文章

  1. python 按位置关系输出矩阵元素

    描述:依次输出矩阵中最近邻的元素 例如:输入: [[1, 2, 3] [4, 5, 6] [7, 8, 9]] 输出: [[ 1.  2.  4.  5.  3.  6.  7.  8.  9.] [ ...

  2. 测试基础面试题 + SQL 面试题(选择题有部分答案,难度:低)

    测试基础面试题 + SQL 面试题(选择题有部分答案,难度:低) 答案: .A .C .C .A .A .D

  3. php开发面试题---日常面试题1

    php开发面试题---日常面试题1 一.总结 一句话总结: 实战确定学习方向,然后去网上找视频资源,非常多,然后看书 1.什么样的数据存在memcache里面? 要去数据库里面查询的那些数据,数据库查 ...

  4. php开发面试题---vue面试题(vue.js的好处及作用)

    php开发面试题---vue面试题(vue.js的好处及作用) 一.总结 一句话总结: 双向数据绑定:在做ajax的时候,更新实在是太方便了 用数据绑定的思想,vue可以简单写单个页面,也可以写一个大 ...

  5. php开发面试题---php面试题英语(How do you debug a PHP application)

    php开发面试题---php面试题英语(How do you debug a PHP application) 一.总结 一句话总结: xdebug or use die() do it; 1.Whi ...

  6. python如何输出矩阵的行数与列数?

    Python如何输出矩阵的行数与列数? 对于pyhton里面所导入或者定义的矩阵或者表格数据,想要获得矩阵的行数和列数有以下方法: 1.利用shape函数输出矩阵的行和列 x.shape函数可以输出一 ...

  7. 笔试题&amp;面试题:输入一个维度,逆时针打印出一个指定矩阵

    称号:考虑到用户层面.打印出指定的矩阵,例如,一个给定的用户10,例如,下面的输出应被视为在图: 程序如下所示: #include <stdio.h> #include <mallo ...

  8. 笔试题&amp;面试题:找出一个数组中第m小的值并输出

    题目:找出一个数组中第m小的值并输出. 代码: #include <stdio.h> int findm_min(int a[], int n, int m) //n代表数组长度,m代表找 ...

  9. 面试题。线程pingpong的输出问题

    第一种情况:public class Main { public static void main(String args[]) { Thread t = new Thread() { public ...

随机推荐

  1. android 防止多次点击提交

    版权声明:本文博客原创文章.博客,未经同意,不得转载.

  2. 页面中插入百度地图(使用百度地图API)

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWF5dW4wNTE2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...

  3. 如何基于对话框的project基于改变BCG的

    一,stdafx.h 增加在下面的例子.BCGCBProInc.h间接介绍lib.   #include <BCGCBProInc.h> // BCGControlBar Pro #if ...

  4. 3D数学学习笔记——笛卡尔坐标系

    本系列文章由birdlove1987编写.转载请注明出处. 文章链接: http://blog.csdn.net/zhurui_idea/article/details/24601215 1.3D数学 ...

  5. mysql导出和导入命令更改数据库名称数据库

    概要 mysql 数据库导入和导出,有两种方法 1)从试点SQL脚本.导入(导入导出又分两种:1. 命令. 2. 工具.这里我们仅仅介绍命令). 2)直接拷贝数据库文件(此方法不推荐). 一.mysq ...

  6. DFS PKU 1562

    简单地DFS Oil Deposits Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12801   Accepted: 6 ...

  7. js地址下拉列表中全职工作

    /******************************************************************* *输出全国各省辖市下拉列表项writeCitys() *输出企 ...

  8. (札记)Java应用架构设计-模块化模式与OSGi

    本书主要模块化模式的优点.模块化方法与模式.OSGi简单使用等内容.分3大部分: 第一部分介绍了模块化概念.为什么要模块化,以及一些模块化要考虑的东西,如模块粒度,依赖关系,重用性灵活性等. 第二部分 ...

  9. FFmpeg 协议初步学习

    typedef struct URLContext { const AVClass *av_class; /**< information for av_log(). Set by url_op ...

  10. HDU Today (图论)

    经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强.这时候,XHD夫妇也退居了二线,并在风景秀美的诸暨市浬 ...