问答详情
源自:7-1 编程练习

大佬求助!!为什么我的“求成绩前三名”程序报输出异常

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
    at imooc.HelloWorld.sorts(HelloWorld.java:22)
    at imooc.HelloWorld.main(HelloWorld.java:12)

下面是代码段

package imooc;
import java.util.Arrays;
public class HelloWorld {   
    //完成 main 方法
    public static void main(String[] args) {
        int scores[]={89,-23,64,91,119,52,73};      
        HelloWorld hello = new HelloWorld();
        hello.sorts(scores);
    }
    //定义方法完成成绩排序并输出前三名的功能 
     public void sorts(int[] score){
         Arrays.sort(score);
         int[] a={0,0,0};
         int temp=0;
         for(int i=score.length;i>=0;i--){
             if(score[i]>=0&&score[i]<=100&&temp<3){
                 a[temp]=score[i];
                 temp++;
             }
         }
         System.out.println("考试成绩前三名:");
         System.out.println(a[0]);
         System.out.println(a[1]);
         System.out.println(a[2]);
     }  
}

提问者:阳光我的挚爱 2018-05-30 17:37

个回答

  • 暮雨puf
    2018-05-30 22:01:19
    已采纳

    for循环那,int i=score.length应该为int i=score.length-1吧,要不然溢出了

  • 阳光我的挚爱
    2018-05-31 10:51:37


    上面已经解决,如果有萌新复制代码请把代码段的包名(package imooc;)去掉哦,那样才能在慕课运行