前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >21:二维数组右上左下遍历

21:二维数组右上左下遍历

作者头像
attack
发布2018-04-03 18:22:35
1.9K0
发布2018-04-03 18:22:35
举报

21:二维数组右上左下遍历

总时间限制: 1000ms 内存限制: 65536kB描述

给定一个row行col列的整数数组array,要求从array[0][0]元素开始,按从左上到右下的对角线顺序遍历整个数组。

输入输入的第一行上有两个整数,依次为row和col。 余下有row行,每行包含col个整数,构成一个二维整数数组。 (注:输入的row和col保证0 < row < 100, 0 < col < 100)输出按遍历顺序输出每个整数。每个整数占一行。样例输入

代码语言:javascript
复制
3 4
1 2 4 7
3 5 8 10
6 9 11 12

样例输出

代码语言:javascript
复制
1
2
3
4
5
6
7
8
9
10
11
12
代码语言:javascript
复制
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<cstring>
 5 using namespace std;
 6 int tot=1;
 7 int ans=2;
 8 int now=1;// 1向下 2向上 
 9 int a[101][101];
10 int hang=3,lie=2;
11 int main()
12 {
13     int n,m;
14     int i=1,j=1;//坐标 
15     cin>>n>>m;
16     for(int i=1;i<=n;i++)
17     {
18         for(int j=1;j<=m;j++)
19         cin>>a[i][j];
20     }
21     while(i*j!=n*m)
22     {
23         if(lie==m+2)
24         break;
25         cout<<a[i][j]<<endl;
26         i++;
27         j--;
28         if(j==0||i==n+1)
29         {
30             i=1;
31             j=lie;
32             lie++;
33         }
34         
35     }
36     i=2;
37     j=m;
38     while(i*j!=n*m)
39     {
40         if(hang==n+2)
41         break;
42         cout<<a[i][j]<<endl;
43         i++;
44         j--;
45         if(j==0||i==n+1)
46         {
47             j=m;
48             i=hang;
49             hang++;
50         }
51     }
52     cout<<a[n][m];
53     return 0;
54 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-03-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 21:二维数组右上左下遍历
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档