[C_AR189-易] 用弓字的方式列印陣列
Time Limit: 1 seconds
問題描述 :
給一個 m*n 的二維陣列,請用弓字的方式展示這個陣列的內容。
舉例而言,底下是一個 4*2 的陣列:
陣列的左上角是起點(即 (0, 0) 之處),你要用下圖的方式走訪陣列,把所有的內容印出來。其中藍色的箭號是走訪的方向。所以你要印出 1 2 4 3 5 6 8 7 。
輸入說明 :
輸入的第 1 行為 2 個正整數,用空白隔開,代表了陣列的 row (以 m )表示,及 column 數(以 n 表示)。
接下來有 m 行,每一行包含了 n 個正整數,這些正整數都以空白隔開。
輸出說明 :
以弓字走訪整個陣列,每遇到一個元素就將之印出來,元素間用空白隔開,最後一個元素的後面不用加空白,但要加一個換行字元。
所有的資料都秀在同一行。
範例 :
問題描述 :
給一個 m*n 的二維陣列,請用弓字的方式展示這個陣列的內容。
舉例而言,底下是一個 4*2 的陣列:
陣列的左上角是起點(即 (0, 0) 之處),你要用下圖的方式走訪陣列,把所有的內容印出來。其中藍色的箭號是走訪的方向。所以你要印出 1 2 4 3 5 6 8 7 。
輸入說明 :
輸入的第 1 行為 2 個正整數,用空白隔開,代表了陣列的 row (以 m )表示,及 column 數(以 n 表示)。
接下來有 m 行,每一行包含了 n 個正整數,這些正整數都以空白隔開。
輸出說明 :
以弓字走訪整個陣列,每遇到一個元素就將之印出來,元素間用空白隔開,最後一個元素的後面不用加空白,但要加一個換行字元。
所有的資料都秀在同一行。
範例 :
輸入範例 | 輸出範例 |
4 2 1 2 3 4 5 6 7 8 | 1 2 4 3 5 6 8 7 |
- #include <iostream>
- #include <vector>
- using namespace std;
- int main() {
- // [C_AR189-易] 用弓字的方式列印陣列
- int m, n;
- cin >> m >> n;
- int input[m][n];
- vector<int> ans;
- for(int i = 0;i < m;i++)
- {
- for(int j = 0;j < n;j++)
- {
- cin >> input[i][j];
- }
- }
- for(int i = 0;i < m;i++)
- {
- if(i % 2 == 0)
- {
- for(int j = 0;j < n;j++)
- {
- ans.push_back(input[i][j]);
- }
- }
- else
- {
- for(int j = n-1;j >= 0;j--)
- {
- ans.push_back(input[i][j]);
- }
- }
- }
- for(int i = 0;i < ans.size();i++)
- {
- if(i == 0)
- cout << ans[i];
- else
- cout << " " << ans[i];
- }
- cout << endl;
- return 0;
- }
沒有留言:
張貼留言