public static int n = 10;
public static int i = 0;
public static void main(String[] args) {
int[] arr = new int[n];
int max = arr[i];
int min = arr[i];
FullArr(arr);
MinArr(arr);
for (i = 0; i < arr.length; i++) {
if (max < arr[i]) {
max = arr[i];
}
System.out.println();
System.out.println(max);
}
}
public static void FullArr(int[] ar) {
int[] arr = new int[n];
for (i = 0; i < arr.length; i++) {
ar[i] = (int) (Math.random() * 100);
System.out.print(ar[i] + ", ");
}
}
public static void MinArr(int[] ar) {
int min = ar[i];
for (i = 0; i < ar.length; i++) {
if (min > ar[i]) {
min = ar[i];
}
}
System.out.println();
System.out.println(min);
}
该程序给我错误:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at home.ifif.MinArr(ifif.java:35)
at home.ifif.main(ifif.java:12)
答案 0 :(得分:1)
MinArr函数的第一行是
int min = ar[i];
但是在那时我仍然拥有FullArr中最后一个for循环之后的值。出于这个原因,我不应该是你的类的属性,而是每个函数的局部变量。因此,删除将i声明为属性的行。声明min和max的行应该是
int min = arr[0]
和
int max = arr[0]
我应该是你的for循环的本地变量,所以循环应该以{{1}}
开头完整的程序看起来像这样:
for(int i = 0;...