问答详情
源自: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.input(scores);
    }
    
    //定义方法完成成绩排序并输出前三名的功能
    public void input(int[] scores)
    {
        Arrays.sort(scores);
        int num=0;
         for(int i=scores.length-1;i>=0;i--)
         {
             if(scores[i]>0&&scores[i]<100)
                num++;
             if(num<3)
                System.out.println(scores[i]);
         }
    }
}
要输出三个成绩呢  为啥我觉得应该是num<=3,变量跟踪也觉得是这样啊


提问者:想的美但长得丑 2015-08-05 23:06

个回答

  • 天启之魂
    2015-08-05 23:12:09
    已采纳

    你初始化的num=0 这 if判断3次  num=0 ,1 , 2 就会输出前3的成绩 改成num<=3 则会输出四个成绩!

    你可以初始化num=1 if(num<=3),这样就是3个成绩了!

  • 天启之魂
    2015-08-05 23:29:36

    import java.util.Arrays;

    public class HelloWorld {

        public static void main(String[] args) {

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

         HelloWorld hello=new HelloWorld();

         hello.input(scores);

        }

      public void input(int[] scores) {

            Arrays.sort(scores);

            int num=0;

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

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

                    num++;

                 if(num<=3)

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

                }

             }

        }

    }

    代码改成这样 两个if 改成镶嵌式 第一个if 成立时再执行第二个if 就没问题了

  • 想的美但长得丑
    2015-08-05 23:15:05

    不应该是 判断119时 num+1=1;91时等于2;89时等于3吗