我应该编写一个程序,将所有元素添加到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];
    }
}

10-04 15:04