openjudge 二維陣列右上坐下遍歷(二維陣列)
阿新 • • 發佈:2018-12-24
二維陣列右上左下遍歷
- 總時間限制:
- 1000ms
- 記憶體限制:
- 65536kB
- 描述
-
給定一個row行col列的整數陣列array,要求從array[0][0]元素開始,按從左上到右下的對角線順序遍歷整個陣列。
- 輸入
- 輸入的第一行上有兩個整數,依次為row和col。
餘下有row行,每行包含col個整數,構成一個二維整數陣列。
(注:輸入的row和col保證0 < row < 100, 0 < col < 100) - 輸出
- 按遍歷順序輸出每個整數。每個整數佔一行。
- 樣例輸入
-
3 4 1 2 4 7 3 5 8 10 6 9 11 12
- 樣例輸出
-
1 2 3 4 5 6 7 8 9 10 11 12
-
tips:關鍵是位置處理吧,我們按照列印的位置順序看的話:
-
(0,0)
-
(0,1)(1,0)
-
(0,2)(1,1)(2,0)
-
(0,3)(1,2)(3,0)
-
(1,3)(2,2)
-
(2,3)
-
和從【0,行數+列數-2】然後行序從0開始遍歷,只要行序和列序都能保證陣列不越界的話就列印輸出。
-
#include<iostream> #include<cstring> using namespace std; const int maxn=111; int a[maxn][maxn]; int n,m; int main(){ cin>>n>>m; for(int i=0;i<n;i++) for(int j=0;j<m;j++)cin>>a[i][j]; for(int i=0;i<=n+m-2;i++) { for(int j=0;j<n&&j<=i;j++) { if(i-j<m&&i-j>=0)cout<<a[j][i-j]<<endl; } } return 0; }