#Z0405. [伴随编程] 二维数组行求和

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

#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;
}

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

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

接下来,我们要在它的外循环内、内循环开始前加上一个用于累计一行所有数字的变量 sum,并将它初始化为 0。

int sum = 0;

接下来,我们可以在内循环完成一个数字读入后,将这个读入的行内元素(同一行的不同列)加入到这一行的累加变量 sum 中:

sum += matrix[i][j];

由此,我们可以知道每一个外循环内的 sum 在内循环执行完毕后都是这一次外循环对应的行中所有的元素的和。

我们只需要在内循环执行结束后将它输出,就可以达到求出每一行和的功能了。

cout << sum << endl;

不知道你有没有发现,这种方式下,我们其实完全可以不去声明一个二维数组。因为当我们考虑一个行的问题时,我们完全可以将计算过程和读入过程合并。这样的话,使用一个用于读入的临时变量 temp 代替我们现在代码中的 matrix[i][j] 也是完全可行的。例如:

#include <iostream> 
using namespace std; 
int main() { 
    for (int i = 0; i < 3; i++) { 
        int sum = 0; 
        for (int j = 0; j < 5; j++) { 
            int temp; 
            cin >> temp;   
            sum += temp; 
        } 
        cout << sum << endl;
    } 
    return 0; 
} 

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