public static void sumrowsandcols(int[][] a) {
int[] sum = new int[5];
int i, j, x;
// Sum of rows
for (i = 0; i < 5; i++) {
for (j = 0; j < 5; j++) {
sum[i] += a[i][j];
}
}
for (x = 0; x < 5; x++) {
System.out.println(sum[x]);
}
// Sum of columns
for (i = 0; i < 5; i++) {
for (j = 0; j < 5; j++) {
sum[i] += a[j][i];
}
}
for (x = 0; x < 5; x++) {
System.out.println(sum[x]);
}
}
public static int[][] generateArray(Scanner myScanner) {
int numbers[][] = new int[5][5];
int i, j, x;
for (i = 0; i < 5; i++)
System.out.println("Please enter 5 integers for row " + (i+1));
for (x = 0; x < 5; x++) {
j = myScanner.nextInt();
numbers[i][x] = j;
}
return numbers;
}
// Main method. Collection happens, then calls sumrowsandcols.
public static void main(String[] args) {
int i, j, x;
Scanner myScanner = new Scanner(System.in);
int[][] numbers = generateArray(myScanner);
// Collect information by row
// Print sum of rows and columns
sumrowsandcols(numbers);
}
-1
A
回答
2
本聲明
for (i = 0; i < 5; i++)
System.out.println("Please enter 5 integers for row " + (i + 1));
終止隨後for
循環之前。其結果i
已超過上限列數組索引的調用語句
numbers[i][x] = j;
時。結果是ArrayIndexOutOfBoundsException
。這就是爲什麼使用大括號來限制for
循環中的作用域的原因。同時聲明變量在for
環本身表明,他們是在範圍:
for (int i = 0; i < 5; i++) {
System.out.println("Please enter 5 integers for row " + (i + 1));
for (int x = 0; x < 5; x++) {
j = myScanner.nextInt();
numbers[i][x] = j;
}
}
1
當你寫
for (i = 0; i < 5; i++)
System.out.println("Please enter 5 integers for row " + (i+1)); '
這一次全部打印出statemnt和其他環路打印後執行5次。在for循環之後加上大括號將它分組。
public static int[][] generateArray(Scanner myScanner) {
int numbers[][] = new int[5][5];
int i, j, x;
for (i = 0; i < 5; i++){
System.out.println("Please enter 5 integers for row " + (i + 1));
for (x = 0; x < 5; x++) {
j = myScanner.nextInt();
numbers[i][x] = j;
}
}
return numbers;
}
+0
狗屎我錯了,沒有注意到,對不起 –
+0
@DanN。這是一個非常普遍的錯誤。當你使用for循環時,總是要把它放在花括號裏。 – Adarsh
相關問題
- 1. 線程「主」異常java.lang.ArrayIndexOutOfBoundsException:5
- 2. 線程「主」java.lang.ArrayIndexOutOfBoundsException異常:10
- 3. 線程「主」異常java.lang.ArrayIndexOutOfBoundsException:13
- 4. 線程「主」異常java.lang.ArrayIndexOutOfBoundsException 4
- 5. 傳遞一個陣列 - 在線程異常「主要」 java.lang.ArrayIndexOutOfBoundsException:5
- 6. 線程「main」中的異常java.lang.ArrayIndexOutOfBoundsException:5什麼?
- 7. 這個java異常'java.lang.ArrayIndexOutOfBoundsException?'的原因是什麼
- 8. 是什麼原因造成的EXC_CRASH上拋出:異常?
- 9. 是什麼原因造成我的空指針異常
- 10. 異常在線程「主」java.lang.ArrayIndexOutOfBoundsException:200
- 11. 線程「主」java.lang.ArrayIndexOutOfBoundsException異常,數組數組
- 12. 線程「主」java.lang.ArrayIndexOutOfBoundsException異常:4錯誤
- 13. 線程「主」的異常java.lang.ArrayIndexOutOfBoundsException:0
- 14. 異常在線程「主」java.lang.ArrayIndexOutOfBoundsException:3
- 15. 異常在線程「主」java.lang.ArrayIndexOutOfBoundsException:0錯誤
- 16. 異常在線程「主要」
- 17. 異常線程「main」 java.lang.ArrayIndexOutOfBoundsException:80
- 18. 異常線程「main」 java.lang.ArrayIndexOutOfBoundsException:8
- 19. 是什麼原因造成process.hrtime()掛在
- 20. 想看看是什麼原因造成
- 21. 異常線程 「main」 java.lang.ArrayIndexOutOfBoundsException:65
- 22. 這是什麼原因爲stackoverflow異常?
- 23. Classformat異常的原因是什麼?
- 24. 異常線程 「main」 java.lang.ArrayIndexOutOfBoundsException:0
- 25. 異常線程 「main」 java.lang.ArrayIndexOutOfBoundsException:-1
- 26. 異常線程「main」 java.lang.ArrayIndexOutOfBoundsException:0
- 27. 這是哪裏出錯?線程「main」中的異常java.lang.ArrayIndexOutOfBoundsException:5
- 28. AADSTS90009的主要原因是什麼?
- 29. 試行多維數組,在線程recieveing異常「主要」 java.lang.ArrayIndexOutOfBoundsException
- 30. 我做錯了什麼?異常在線程「主要」 java.lang.NoSuchMethodError:主要
看看堆棧跟蹤。找到發生異常的行並指出該代碼的哪一行。瞭解發生異常的位置將有助於人們弄清楚爲什麼會發生這種情況。 – cmbaxter
我找不到錯誤,但是'Sum of columns'註釋中的代碼看起來可疑...... – RMalke