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/