我应该编写一个程序,将所有元素添加到2D矩形数组中,但是答案应该是31,而是打印33。
我究竟做错了什么?
这是代码:
public static int sum(int[][] array) {
int[][] numArray = {
{3, -1, 4, 0},
{5, 9, -2, 6},
{5, 3, 7, -8}
};
int sumOfRow = 0;
for (int i = 0; i < numArray.length; i++) {
sumOfRow += numArray[0][i];
sumOfRow += numArray[1][i];
sumOfRow += numArray[2][i];
}
System.out.println(sumOfRow);
return sumOfRow;
}
最佳答案
numArray.length
是行数,您的代码将其视为列数,因此您忽略了每行的最后一列。给定行中的列数为numArray[i].length
。
您应该使用嵌套循环:
for (int i = 0; i < numArray.length; i++) {
for (int j = 0; j < numArray[i].length; j++) {
sumOfRow += numArray[i][j];
}
}