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

帮忙下,谢谢

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.Score(scores);

        

    }

    

    //定义方法完成成绩排序并输出前三名的功能

    public void Score(int[] scores){

        Arrays.sort(scores);

        int count=0;

        for(int i=scores.length;i>=0;i--){

            if(scores[i]<0||scores[i]>100){

                continue;

            }

            count++;

            if(count>3){

                    break;

                }

                System.out.println(scores[i]);

            }

        }

    }

    

 

哪里错了,求大神帮下忙

提问者:诺大大 2016-03-20 17:59

个回答

  • 用户1173975
    2016-03-20 19:48:33
    已采纳

    int i=scores.length

    这个地方的下标最大是scores.length-1

  • h2e
    2016-03-20 19:24:42

    public class HelloWorld {
       
        //完成 main 方法
        public static void main(String[] args) {
        int []scores = {89,-23,64,91,119,52,79};   
       
        System.out.println(" 本次考试前三名是:");
        HelloWorld hello = new HelloWorld();       
        hello.big3(scores);   
           

           
        }
       
        //定义方法完成成绩排序并输出前三名的功能
       
       
          public void big3(int [] scores)
        {
            Arrays.sort(scores);
            int num = 0;
            for(int i = scores.length-1;i>=0&&num<3;i--)
            {
                if(scores[i]<0||scores[i]>100)
                    continue;
                num++;
                System.out.println(scores[i]);
            }
        }