问题 Z 回形取数
来源:互联网 发布:淘宝卖家人工客服 编辑:程序博客网 时间:2024/05/29 14:03
题目描述
回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。
输入
输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。
输出
输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。
样例输入
3 3
1 2 3
4 5 6
7 8 9
3 2
1 2
3 4
5 6
样例输出
1 4 7 8 9 6 3 2 5
1 3 5 6 4 2
#include<stdio.h>#include<string.h>int main( int argc, char **argv ){ int M, N; while( scanf( "%d%d", &M, &N ) != EOF ) { int Array[202][202], Book[202][202]; memset( Array, -1, sizeof( Array ) ), memset( Book, 0, sizeof( Book ) ); int i, j, Count = 0, X = 1, Y = 1; for( i = 1; i <= M; ++i ) for( j = 1; j <= N; ++j ) scanf( "%d", &Array[i][j] ); printf( "%d", Array[X][Y] ); Book[X][Y] = 1; Count++; while( Count < N * M ) { while( Array[X + 1][Y] != -1 && Book[X + 1][Y] == 0 ) { X++; printf( " %d", Array[X][Y] ); Book[X][Y] = 1; Count++; } while( Array[X][Y + 1] != -1 && Book[X][Y + 1] == 0 ) { Y++; printf( " %d", Array[X][Y] ); Book[X][Y] = 1; Count++; } while( Array[X - 1][Y] != -1 && Book[X -1 ][Y] == 0 ) { X--; printf( " %d", Array[X][Y] ); Book[X][Y] = 1; Count++; } while( Array[X][Y - 1] != -1 && Book[X][Y - 1] == 0 ) { Y--; printf( " %d", Array[X][Y] ); Book[X][Y] = 1; Count++; } } printf( "\n" ); } return 0;}
0 0
- 问题 Z 回形取数
- 电脑问题DIY[z]
- Ctrl+Z问题
- z-index相关问题
- 汉诺塔问题 x->z
- z-wave问题汇总
- Z字形编排问题
- 问题 Z: 因子和
- threejs- z-fighting 问题
- Z字型编排问题
- 问题 Z: 显示字母
- 100z盏灯问题
- z-order引出的问题
- z-order引出的问题
- z-order引出的问题
- ie7 z-index 失效问题
- Z-stack数据接收问题
- position中z-index问题
- Matlab绘图
- SpannableStringBuilder的用法
- <opencv for android入门积累>Faltal exception :Main
- android设备功能之camera教程实例汇总
- WebApi编写
- 问题 Z 回形取数
- vim Another program may be editing the same file.
- 关于在SecureCRT中用pstree命令乱码问题
- 马小妹的android之旅——Context
- 问题 B 错误票据
- 加密芯片SMEC98SP使用之一
- MAC XAMPP搭建php开发环境,上传图片 move_uploaded_file出现错误 failed to open stream: Permission denied
- 【Maven资料】Maven生命周期1
- 有效的括号序列