简单的Java排序程序报错Array index out of range: 45 求大神指教
importjava.util.*;publicclassprintBelow{publicstaticvoidmain(Stringargs[]){int[]array...
import java.util.*;
public class printBelow {
public static void main(String args[]){
int[] arrayNumber;
arrayNumber = new int[40];
double sum=0;
for(int i=0;i<40;i++){
arrayNumber[i]= (int)(100*Math.random());
System.out.print(arrayNumber[i]+" ");
sum += arrayNumber[i];
}
System.out.println();
System.out.println(sum/40);
for(int i=0;i<40;i++){
if(arrayNumber[i]<=sum/40)
System.out.print(arrayNumber[i]+" ");
}
Arrays.sort(arrayNumber);
for(int i:arrayNumber){
System.out.print(arrayNumber[i]+" ");
}
}
}
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 43 展开
public class printBelow {
public static void main(String args[]){
int[] arrayNumber;
arrayNumber = new int[40];
double sum=0;
for(int i=0;i<40;i++){
arrayNumber[i]= (int)(100*Math.random());
System.out.print(arrayNumber[i]+" ");
sum += arrayNumber[i];
}
System.out.println();
System.out.println(sum/40);
for(int i=0;i<40;i++){
if(arrayNumber[i]<=sum/40)
System.out.print(arrayNumber[i]+" ");
}
Arrays.sort(arrayNumber);
for(int i:arrayNumber){
System.out.print(arrayNumber[i]+" ");
}
}
}
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 43 展开
5个回答
展开全部
for(int i:arrayNumber){这里的i是数组中的元素,不是角标
System.out.print(i+" ");
}
最后这里改一下试试
System.out.print(i+" ");
}
最后这里改一下试试
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import java.util.*;
public class Test {
public static void main(String args[]){
int[] arrayNumber;
arrayNumber = new int[40];
double sum=0;
for(int i=0;i<40;i++){
arrayNumber[i]= (int)(100*Math.random());
System.out.print(arrayNumber[i]+" ");
sum += arrayNumber[i];
}
System.out.println();
System.out.println(sum/40);
for(int i=0;i<40;i++){
if(arrayNumber[i]<=sum/40)
System.out.print(arrayNumber[i]+" ");
}
Arrays.sort(arrayNumber);
for(int temp:arrayNumber){
System.out.print(temp+" ");
}
}
}
最后的事for each循环你写错了。。
public class Test {
public static void main(String args[]){
int[] arrayNumber;
arrayNumber = new int[40];
double sum=0;
for(int i=0;i<40;i++){
arrayNumber[i]= (int)(100*Math.random());
System.out.print(arrayNumber[i]+" ");
sum += arrayNumber[i];
}
System.out.println();
System.out.println(sum/40);
for(int i=0;i<40;i++){
if(arrayNumber[i]<=sum/40)
System.out.print(arrayNumber[i]+" ");
}
Arrays.sort(arrayNumber);
for(int temp:arrayNumber){
System.out.print(temp+" ");
}
}
}
最后的事for each循环你写错了。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
报的错是:数组索引超出范围,也就是你引用的数组没有这么多。你仔细检查下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对,for循环写错了。再试下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询