138 顺时针打印矩阵
来源:互联网 发布:热血传奇mac客户端 编辑:程序博客网 时间:2024/05/16 06:06
38、顺时针打印矩阵
题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
例如:如果输入如下矩阵:
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 。
题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
例如:如果输入如下矩阵:
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 。
分析:包括 Autodesk、EMC 在内的多家公司在面试或者笔试里采用过这道题。
/*38、顺时针打印矩阵题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如:如果输入如下矩阵:1 2 3 45 6 7 89 10 11 1213 14 15 16则依次打印出数字 1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6, 7, 11, 10 。分析:包括 Autodesk、EMC 在内的多家公司在面试或者笔试里采用过这道题。模拟一下即可 */ #include<iostream>#include<stdio.h>#define N 100 using namespace std;int map[N][N],vis[N][N];int main(){ int n,m,i,j,tot; while(scanf("%d%d",&n,&m),n+m) { for(i=0;i<n;i++)//输入一个矩阵 for(j=0;j<m;j++) scanf("%d",&map[i][j]); memset(vis,0,sizeof(vis)); tot=1;i=0;j=0; while(tot<=n*m) { while(j<m&&!vis[i][j]) { printf("%d ",map[i][j]); vis[i][j]=1;tot++; j++; } j--;i++; while(i<n&&!vis[i][j]) { printf("%d ",map[i][j]); vis[i][j]=1;tot++; i++; } i--;j--;while(j>=0&&!vis[i][j]) { printf("%d ",map[i][j]); vis[i][j]=1;tot++; j--; } j++;i--;while(i>=0&&!vis[i][j]) { printf("%d ",map[i][j]); vis[i][j]=1;tot++; i--; } j++;i++; } printf("\n"); } return 0;}/*4 41 2 3 45 6 7 89 10 11 1213 14 15 162 31 4 85 7 94 31 4 5 2 7 83 9 44 6 9*/
0 0
- 138 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 矩阵顺时针打印
- 顺时针打印矩阵
- 顺时针打印矩阵[算法]
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- python threading(转)
- T-SQL的学习总结一
- 敕勒哥
- Mac OS X Yosemite 10.10 配置 Apache+PHP 教程注意事项
- 抓住商业先机,银行保险太给力
- 138 顺时针打印矩阵
- 心好烦
- 双层桶-中位数求解
- 树的基本概念及性质
- 第三章 字符设备驱动程序——note
- GCJ 2015 Round D
- c\c++ 头文件的作用
- 约瑟夫环
- C#字体对话框