使用Java中的1循环查找2D数组的行总和

使用Java中的1循环查找2D数组的行总和

int[][] arr = { { 11, 12, 13, 14, 15, 16 },
            { 21, 22, 23, 24, 25, 26 },
            { 31, 32, 33, 34, 35, 36 },
            { 41, 42, 43, 44, 45, 46 },
            { 51, 52, 53, 54, 55, 56 },
            { 61, 62, 63, 64, 65, 66 } };
    int sum = 0;
    int rowsSum = 0;
    int rowIndex = 0;
    for (int i = 0; i < arr.length * arr.length; i++) {
        System.out.print(arr[i / arr.length][i % arr.length] + " ");
        sum += arr[i / arr.length][i % arr.length];
        if (i % 6 == 0) {
            System.out.println();
            System.out.println("Sum of row " + (rowIndex + 1) + " is: " + sum);
            rowsSum += sum;
            sum = 0;
            rowIndex++;
        }

    }
    System.out.println();
    System.out.println("Sum of all rows is: " + rowsSum);

这是我到目前为止所写的。我遇到的问题是,在第一次迭代时i为0,也使i%6 = 0并使之成为行1,所以行1仅由arr [0] [0]组成,每个下一行以下一个的实际第一个结尾一。

我觉得解决方案一定很简单,但过去一个小时左右没有找到解决方案。任何帮助,将不胜感激。

最佳答案

不要将i%6与零进行比较,而应将其与5进行比较,其余部分之前的最后一个数字再次降至零。这将使您在到达当前行的最后一个元素时进行输出,而不是等待到达下一行的初始元素(并完全删除最后一行的打印输出)。

if (i % 6 == 5) {
    System.out.println();
    System.out.println("Sum of row " + (rowIndex + 1) + " is: " + sum);
    rowsSum += sum;
    sum = 0;
    rowIndex++;
}

关于java - 使用Java中的1循环查找2D数组的行总和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37641640/

10-11 02:16