JAVA小程序,看看哪里错了?在线等~谢

来源:百度知道 编辑:UC知道 时间:2024/06/25 06:10:20
public class eg7 {
public static void main(String[] args){
int a[]={12,26,35,854,54,95,32,};
for(int i=0;i<a.length;i++){
int max=a[i];
for(int j=0;j<a.length;j++){
if(max<a[j]){
max=a[j];
a[j]=a[i];
a[i]=max;
}
}
System.out.println(a[7]);
}
}
}
题目:一维数组元素排序

public static void main(String[] args) {
int a[] = { 12, 26, 35, 854, 54, 95, 32, };
for (int i = 0; i < a.length - 1; i++) {//改动一
int max = a[i];
for (int j = i; j < a.length; j++) {//改动2
if (max < a[j]) {
max = a[j];
a[j] = a[i];
a[i] = max;
}
}
System.out.println(a[7]);
}
}

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
at eg7.main(eg7.java:15)
请按任意键继续. . .
----------------------------------------------------
错误信息如上,这是说你调用的主方法中,超出了数组的范围。
问题出在最后的输出语句上,
数组元素下标 从0开始,7个元素,下标最大为6.

。。。。
排序也不对,稍等会儿,给你写一个。

楼主的a[]数组只有七个值,System.out.println(a[7]);
数组下标越界了。