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

想的脑袋疼,哪里错了?

import java.util.Arrays;

public class HelloWorld {

    

    //完成 main 方法

    public static void main(String[] args) {

       HelloWorld score = new HelloWorld();

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

        System.out.println("前三名成绩是:");

        score.so(scores);

    }

    

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

   public void so(int[] scores)

   {

       Arrays.sort(scores);

       int a=0;

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

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

  continue;

  }

  a++;

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

  

  }

   }

}


提问者:l0nger 2016-08-14 23:36

个回答

  • 慕粉void
    2016-08-15 09:13:58
    已采纳

    i >= 0 && a > 3

    你的a等于0,不满足条件,不执行循环。应该这么写:

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


  • 慕粉3819160
    2016-08-15 09:16:49

    请问  第八章怎么才只有一节啊?


  • Alivegirl
    2016-08-15 08:57:51

    应该是a<3

  • 磁单极
    2016-08-15 08:18:24

    是的,应该是a<3

  • Chaooos
    2016-08-15 01:01:57

    应该是 a<3

  • Chaooos
    2016-08-15 00:59:39

    i>=0&&a>3

    这一句啊。你一开始 int a= 0,条件都不符合a>3,循环不执行。