输出结果个数

来源:7-1 编程练习

想的美但长得丑

2015-08-05 23:06

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,变量跟踪也觉得是这样啊


写回答 关注

3回答

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

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

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

    想的美但长得... 回复天启之魂

    发现了 我那个if条件表达式也有问题

    2015-08-05 23:17:29

    共 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吗

    天启之魂

    应该是判断119是 if 不成立 什么都不执行 进行下个元素的判断

    2015-08-05 23:30:42

    共 1 条回复 >

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165538 学习 · 17586 问题

查看课程

相似问题