1. 程式人生 > >二維陣列右上左下遍歷 (Coursera 程式設計與演算法 專項課程2 C程式設計進階 李戈;OpenJudge)

二維陣列右上左下遍歷 (Coursera 程式設計與演算法 專項課程2 C程式設計進階 李戈;OpenJudge)

程式設計題#2: 二維陣列右上左下遍歷

注意: 總時間限制: 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

#include<iostream>  
using namespace std;

int main(){
    int a[99][99] = { 0 };
    int m, n;

    cin >> m >> n;
    for (int i = 0; i < m; i++){
        for (int j = 0; j < n; j++)
            cin >> a[i][j];
    }

    for (int k = 0; k < n; k++){
        int j = k;
        int
i = 0; while (i < m && j >= 0){ cout << a[i][j] << endl; i++; j--; } } for (int k = 1; k < m; k++){ int j = n - 1; int i = k; while (i < m && j >= 0){ cout << a[i][j] << endl; i++; j--; } } return
0; }