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

哪里错了呢

import java.util.Arrays;

public class HelloWorld {

    

    //完成 main 方法

    public static void main(String[] args) {

     HelloWorld hello= new HelloWorld();


    int[]scores=new int[]{89,23,64,91,119,52,73};

      System.out.println("考试成绩的前三名:"); 

       hello.bravePeople(scores);

   

        

        

    }

    

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

    

    public void bravePeople(int []scores){

   Arrays.sort(scores);

   int num=0;

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

        

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

            continue;

        }

        num++;

        if(num>3){

            break;

        }

      

    }

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

    }

    

}

    


}


提问者:雪中_悍刀行 2016-06-18 13:28

个回答

  • qq_执迷不悟矢志不渝_0
    2016-06-18 23:33:30

    System.out.println(scores[i]);应放在上一个}内

  • 慕粉218
    2016-06-18 19:10:03

    输出的地方有错误,满足(0,100)条件的话应该输出,否则用continue结束本次循环。还有num=3的时候就应该退出循环。

    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.getFirstThreeNum(scores);
        }
       
        //定义方法完成成绩排序并输出前三名的功能
        public void getFirstThreeNum(int[] scores){
            Arrays.sort(scores);
            int count = 0;
            System.out.println("考试成绩的前三名为:");
            for(int i=scores.length-1;i>=0;i--){
                if(scores[i]< 0 || scores[i] > 100)
                    continue;
                System.out.println(scores[i]);
                count++;
                if(count == 3)
                    break;
            }
        }
    }