我的代码是
Scanner sc = new Scanner(System.in);
int v=sc.nextInt();
int s=sc.nextInt();
int[][] n = new int [v][s];
for (int i=0; i<n.length; i++) {
for (int j=0; j<n[v].length-1; j++) {
n[i][j]=sc.nextInt();
}
}
System.out.print(n[v][s]);
System.out.println();
当我想编译它时,终端打印出来:
java.lang.ArrayIndexOutOfBoundsException:4
在Plevel.main(Plevel.java:13)
有人可以告诉我我做错了什么吗?
答案 0 :(得分:1)
我想错误就在这里:
System.out.print(n[v][s]);
数组的索引从0到v-1,从0到s-1
如果你有一个数组3x3,它显示如下:
v[0]s[0] v[0]s[1] v[0]s[2]
v[1]s[0] v[1]s[1] v[1]s[2]
v[2]s[0] v[2]s[1] v[2]s[2]
所以如果你想得到最后一个元素,你应该写:
System.out.print(n[v-1][s-1]);
答案 1 :(得分:0)
Scanner sc = new Scanner(System.in);
int v=sc.nextInt();
int s=sc.nextInt();
// V variable becomes row and S variable come column, since you already know row length and column length you can use same for looping
int[][] n = new int [v][s];
for (int i = 0; i < v; i++) {
for (int j = 0; j < s; j++) {
n[i][j] = sc.nextInt();
}
}
// If you want to print last value
System.out.print(n[v-1][s-1]);
数组索引从0开始,因此当数组大小为3时,可以使用索引0,1,2。如果您使用3作为索引,那么它将抛出您在查询中发布的异常