称号: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. SharePoint 2013 禁用搜索服务

    原文:SharePoint 2013 禁用搜索服务 前言,在SharePoint2013中,对于硬件需求的提升,让我们虚机里安装总是一筹莫展,尤其开启了搜索服务以后,对于内存的消耗就更加严重,尤其对于 ...

  2. CSV文件格式分析器执行:从字符串Split至FSM

    本文乃Siliphen原创,转载请注明出处:http://blog.csdn.net/stevenkylelee/article/details/38309147 本文分为5小节,基本上就是我刚接触C ...

  3. 在WIN7笔记本电脑系统的建立WIFI热点

        成功的关键是,你在运行秩序:       前置条件:右键"我的电脑"--"属性"--"设备管理器"--"网络适配器&quo ...

  4. 【git学习五】git基础之git分支

    1.背景                最早用github的时候,我傻傻的问舍友大神,git里面的branch是干什么的,他用了非常直白的解释,我至今还记得."branch就是你能够自己建立 ...

  5. JSCover+WebDriver/Selenium获得JS 代码覆盖

    我们看JSCover(http://tntim96.github.io/JSCover/manual/manual.xml)介绍及使用说明的时候,往往被图形界面所吸引.这样的方式比較适合手工操作,点击 ...

  6. poj 3400 Dropping the stones

    //next_permutation全阵列 # include <stdio.h> # include <algorithm> # include <string.h&g ...

  7. 编程算法基础-数字数码管-隐藏password

    作业 数字数码管 个数码管) @@@@         0     @          @       1   2     @          @         3        @@@@    ...

  8. 网络资源(2) - Maven视频

    2014_08_23 http://v.youku.com/v_show/id_XNDE2NzM0Nzk2.html Maven最佳实践,公司真实环境实践-私服最佳实践 2014_08_24 http ...

  9. 手工制作的年份Java老A发售量

    Java老A这本书是写了很长的时间,昨天终于开始china-pub.京东.活动当天发售的猫,现在,简称买卖,他当然还没有到. 有兴趣的人能够去看看哈(兴许其它站点地址也会在这里公开): china-p ...

  10. 使用myeclipse创建带注解的model实体类

    1.先新建JPA项目: 如果没有就点击左下角的Show All Wizards. 点两次Next后,点击Finish即可,中间不用任何操作 (点第二次Next后会出现连接到所在数据库,先不管)     ...