P1206 函数定义-二维数组作为参数应用-计算矩阵所有元素的和

暂无评定 传统题 GESP函数与递归数组 上传者
时间限制1000ms
内存限制256MiB
通过 / 提交0/0

P1206函数定义-二维数组作为参数应用-计算矩阵所有元素的和

暂无评定 传统题 GESP函数与递归数组 上传者
时间限制1000ms
内存限制256MiB
通过 / 提交0/0

题目描述

编写一个函数 int sum_arr(int arr[][100], int n, int m),它接收一个二维数组 arr(固定列数为100),以及行数 n 和列数 m(1 ≤ n, m ≤ 100)。 函数需要遍历整个矩阵,计算所有元素的和,并返回该和。(0≤arri,j≤100 0 \le arr_i,_j \le 100)
在 main 函数中,调用 sum_arr 函数,输出计算出的总和。

输入

第一行两个整数 n 和 m,表示矩阵的行数和列数。
接下来 n 行,每行 m 个整数,表示矩阵元素。

输出

一个整数,表示矩阵所有元素的和。

样例输入

3 4
1 2 3 4
5 6 7 8
9 10 11 12

样例输出

78

提示与要求

  • 函数的第一个参数必须定义为 int arr[][100](第二维大小固定为100,因为C++传递二维数组必须知道列数)。

  • 函数内部使用双层循环遍历所有元素,累加求和,最后 return 和。

  • main 中只负责输入、调用函数和输出结果。

  • 在函数内部,访问元素用 a[i][j] 即可。

  • 实际输入时,列数 m 不会超过100,因此第二维大小100是安全的。


要牢记

  1. 为什么需要指定第二维大小?
    在C++中,二维数组在内存中是连续存储的(按行优先)。编译器需要知道每行有多少个元素才能正确计算 arr[i][j] 的地址。所以必须明确第二维的长度(例如 int arr[][100])。

  2. 参数传递的本质
    数组名作为参数时,实际传递的是第一行的地址(指针),但函数声明中写 int arr[][100] 更直观。