21:二維陣列右上左下遍歷
- 總時間限制:
- 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
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 }