*作业
我正在尝试在数组中添加值。使用我在下面写的sum方法,该程序仅适用于没有锯齿的数组。如果我测试一个锯齿状数组,我会得到一个IndexOutOfBoundsException。如果数组是锯齿状的,我应该尝试使用此方法的下一步是什么?
int sum() {
int sum = 0;
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
sum += array[j][i];
}
}
return sum;
}
答案 0 :(得分:2)
你的方法很接近,但它有一个小错误 - 这个
sum += array[j][i];
应该是
sum += array[i][j];
请注意,您的内部循环正在迭代array[i]
。
答案 1 :(得分:1)
反转指数:
sum += array[i][j];
答案 2 :(得分:1)
您正在混合索引。您首先遍历行(i
),然后遍历列(j
),但是当您访问数组元素时,您使用j
表示行和{{1}对于列。
应该是:
i
答案 3 :(得分:1)
更改
sum += array[j][i];
到
sum += array[i][j];