题目描述
编写一个函数 int sum_arr(int arr[][100], int n, int m),它接收一个二维数组 arr(固定列数为100),以及行数 n 和列数 m(1 ≤ n, m ≤ 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是安全的。
要牢记
-
为什么需要指定第二维大小?
在C++中,二维数组在内存中是连续存储的(按行优先)。编译器需要知道每行有多少个元素才能正确计算arr[i][j]的地址。所以必须明确第二维的长度(例如int arr[][100])。 -
参数传递的本质
数组名作为参数时,实际传递的是第一行的地址(指针),但函数声明中写int arr[][100]更直观。