c++二维数组的历遍

img


#include<iostream>
#include<cstdio>
using namespace std;
int main(){
//希望运用尽量简单的方法
return0;
}


#include"stdafx.h"
#include<iostream>
#include<vector>

using namespace std;
int main()

{

    int m, n;
    cin >> m >> n;
    vector<vector<int>> a(m, vector<int>(n, 0));//二维int数组初始化m行n列赋值为0,自行百度vector的用法,不会也可以用二维数组
    for (int i = 0; i < m; ++i) {
        for (int j = 0; j < n; ++j) {
            cin >> a[i][j];
        }
    }
    for (int i = 0; i < m + n - 1; ++i) {//i表示行列下标和,从0到m+n-2,a[m-1][n-1]的行列下标和为m+n-2
        for (int k = 0; k <= i; ++k) {//k表示行下标,从0到i,列下标等于i-k,表示从右上往左下遍历
            if (k >= 0 && k < m && i - k >= 0 && i - k < n) {//判断是否越界
                cout << a[k][i - k] << " ";
            }
        }
    }

    system("pause");
    return 0;

}