二維陣列右上左下遍歷(C程式設計進階第5周)
阿新 • • 發佈:2018-12-24
問題描述
給定一個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
原始碼
#include <iostream>
//#include <vector>
using namespace std;
int main()
{
int row = 0, rol = 0;
cin >> row >> rol;
// vector<vector<int>> array(row, rol);//使用vector提交作業提示:Compile Error,難道使用方法有誤?本地執行時正確的
int array[100][100] = {0};
for (int i = 0; i < row; i++)
{
for (int j = 0; j < rol; j++)
{
cin >> array[i][j];
}
}
int x = 0, y = 0;
for (int i = 0; i < row+rol-1; i++)
{
x = i > rol-1? i-rol+1 : 0;
y = i-x;
while (x <= row-1 && y >= 0)
{
cout << array [x][y] << endl;
x++;
y--;
}
}
return 0;
}