返回首页 C++ 模板

二维数组模板

矩阵的存储与操作——行优先、遍历、旋转

二维数组 矩阵 遍历 旋转 GESP4
#include <bits/stdc++.h>
using namespace std;

int a[105][105];  // 全局数组自动初始化为0

int main() {
    int n, m;
    cin >> n >> m;

    // 输入
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            cin >> a[i][j];

    // 行优先遍历
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++)
            cout << a[i][j] << " ";
        cout << endl;
    }

    // 列优先遍历
    for (int j = 0; j < m; j++) {
        for (int i = 0; i < n; i++)
            cout << a[i][j] << " ";
        cout << endl;
    }

    // 顺时针旋转90度(方阵)
    int b[105][105];
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            b[j][n-1-i] = a[i][j];

    // 对角线遍历
    for (int i = 0; i < n; i++)
        cout << a[i][i] << " ";  // 主对角线

    // 行求和
    for (int i = 0; i < n; i++) {
        int rowSum = 0;
        for (int j = 0; j < m; j++) rowSum += a[i][j];
        cout << "第" << i << "行和: " << rowSum << endl;
    }

    return 0;
}

📖 要点说明

⚠️ 常见错误