二维数组行列求和需区分行求和与列求和:行求和固定行号、遍历列号,每行重置累加器;列求和固定列号、遍历行号,每列重置累加器;均需注意数组边界。

二维数组的行列求和,核心是遍历每行每列分别累加元素。关键在于区分行求和(固定行号,列号变化)与列求和(固定列号,行号变化),并注意数组边界。
行求和:逐行计算每行元素总和
对每一行 i,遍历所有列 j,将 array[i][j] 累加到当前行和中。
- 外层循环控制行索引(0 到 rows−1)
- 内层循环控制列索引(0 到 cols−1)
- 每轮外层循环开始前重置行和变量为 0
- 例如:int rowSum = 0; for (int j = 0; j
列求和:逐列计算每列元素总和
对每一列 j,遍历所有行 i,将 array[i][j] 累加到当前列和中。
- 外层循环控制列索引(0 到 cols−1)
- 内层循环控制行索引(0 到 rows−1)
- 每轮外层循环开始前重置列和变量为 0
- 例如:int colSum = 0; for (int i = 0; i
优化存储:用一维数组保存所有行和或列和
若需后续使用各行列和,建议用长度分别为 rows 和 cols 的数组保存结果,避免重复计算。
- int[] rowSums = new int[rows]; // 存每行和
- int[] colSums = new int[cols]; // 存每列和
- 计算完成后可直接访问 rowSums[2] 获取第 3 行总和
- 注意初始化为 0,否则可能含垃圾值
边界与安全:处理空数组和不规则情况
实际编程中需先校验输入,防止空指针或越界异常。
- 检查数组是否为 null 或长度为 0
- 若为不规则二维数组(如每行长度不同),列求和需按最小列数或动态取每行长度
- Java 中可用 arr.length 获取行数,arr[i].length 获取第 i 行列数
- C/C++ 中需额外传入 rows 和 cols 参数,不可仅靠指针推断











