#Z0406. [伴随编程] 二维数组列求和

[伴随编程] 二维数组列求和

#include <iostream>
using namespace std;
int main() {
    int matrix[3][5];
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 5; j++) {
            cin >> matrix[i][j]; 
        }
    }
    return 0;
}

这一节中,我们来学习如何输出一个二维数组每一列中元素的和。

我们可以看到,现在的程序中声明了一个二维数组并且完成了读入的过程。

不同于行求和的过程,按列进行求和会变得麻烦不少。在这里,我们可以在声明 matrix 之后单独声明一个用于存列的和的数组 sum,长度为 5;并将其内元素全部初始化为 0。或申请成全局变量。

int sum[5] = {0, 0, 0, 0, 0};

接下来,让我们 在内循环中 把遇到的行内元素第 j 列 matrix[i][j] 加入到第 j 个累加变量 sum[j] 中。

sum[j] += matrix[i][j];

通过这种方式,我们就将这个二维数组第 j 列的所有数字的和都放到了 sum[j] 中。

输入完成后, 二维数组每一列的值被统计到 sum 数组中。将sum数组输出 即可

for (int j = 0; j < 5; j++) { 
    cout << sum[j] << endl; 
}

想一想,这种设计下,我们一定要用到二维数组么?我们有别的办法么?

写好代码后点击 运行,输入一个 3 行 5 列的矩阵,看看按行求和后我们的结果长成什么样吧?