打印Z形数
来源:互联网 发布:sql查询分析器在哪 编辑:程序博客网 时间:2024/05/21 06:53
打印Z形数
额~已经结束了,找不到题目,就只能按照我的记忆来了。
题目描述:
输入数据N代表数组的行列数,之后N行依次输入数字。把数字按照Z形的顺序打印出来。
嗯就是这样,打印出来就是1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
每两个数字之间有空格。
样例输入:
4
3 4 6 7
9 8 3 4
2 5 7 8
2 4 6 3
样例输出:
3 4 9 2 8 6 7 3 5 2 4 7 4 8 6 3
至于数字范围要求我也不记得了,不是很大的样子。
首先想到的就是和蛇形填数差不多,然后试着写一下觉得好麻烦,然后就换一种想法去打印出来。
就只要循环第一行和最后一列,判断i+j的奇偶性,根据奇偶性来进行斜上输出或者是斜下输出就OK了~
然后很重要的需要注意的地方就是输出的循环判断上,另外强调,要增加耐心才行啊~
代码:
#include <iostream>#include <cstdio>#include <cstring>#define MAX 100using namespace std;int num[MAX][MAX];int main(){ int n; int x=0, y=0, xx=0, yy=0; scanf("%d", &n); for(int i=0; i<n; i++) { for(int j=0; j<n; j++) { scanf("%d", &num[i][j]); } } printf("%d ", num[0][0]); for(int i=1, j=0; i<n; i++) { if((i+j)%2!=0) //奇数,斜下 { x = xx = j; y = yy = i; while(yy>=x && xx<=y) { printf("%d ", num[xx][yy]); yy--; xx++; } } else { x = xx = i; y = yy = j; while(xx>=y && yy<=x) { printf("%d ", num[xx][yy]); xx--; yy++; } } } for(int i=1, j=n-1; i<n-1; i++) { if((i+j)%2!=0) //奇数,斜下 { x = xx = i; y = yy = j; while(yy>=x && xx<=y) { printf("%d ", num[xx][yy]); xx++; yy--; } } else { x = xx = j; y = yy = i; while(yy<=x && xx>=y) { printf("%d ", num[xx][yy]); yy++; xx--; } } } printf("%d", num[n-1][n-1]); return 0;}
0 0
- 打印Z形数
- 打印陀螺形数字
- lx004打印“Z”
- Z字型打印二叉树
- 【CCF】Z字扫描 与 Z字形打印矩阵
- 按Z字形打印二叉树
- Leetcode006--字符串的Z字型打印
- 测试char,循环打印a-z
- 『每日一题 2012-02-09』打印回形数 C语言实现
- 写两个线程,一个线程打印1-52,另一个线程打印A-Z,打印顺序为12A34B56C......5152Z。
- 两个线程交替执行,一个打印1-52;一个打印A-Z;打印顺序为12A34B56C.....5152Z
- 写两个线程,其中一个线程打印1-52,另一个打印A-Z,打印顺序为12A34B56C....5152Z
- 三角形数
- 守形数
- 三角形数
- 三角形数
- 平行四边形数
- 平行四边形数
- Ubuntu下配置Shadowsocks服务端
- 关于equals 和 == 的理解
- 第三章 栈和队列知识导图
- Sublime Text 3 license
- iOS版 ShareSdk 2.10.2才开始支持x64系统, 请更新
- 打印Z形数
- TFS 使用文档 - 部署篇
- (复习)数据库连接及基本操作
- 一步一步教你用 echarts
- Android.mk 与AIDL 编译问题
- Android手势监听(GestureDetector类)
- django cpu监控之三-----izip数据转换
- 82进程清理widget逻辑的实现
- MongoDB的数据库连接(命令行方式)