怎么才能保证它输出的有效成绩是前3名呢

来源:7-1 编程练习

qq_秋天快来呀

2018-07-13 17:49

有效成绩那么多

写回答 关注

4回答

  • 北vs冥
    2018-07-30 16:32:23

    先把数组按从小到大排序好,然后从后往前取三个(有效!!!)的成绩

  • AroundLe
    2018-07-23 21:29:17

    把有效数据排序,从最大的数往下取三位就好。

  • 薛某某的猫
    2018-07-14 18:54:06

    注意任务一的第四、五条,增加判断成绩是否有效的条件,定义一个变量用来记录当前有效成绩的个数。

    import java.util.Arrays;

    public class HelloWorld {

         //完成 main 方法

        public static void main(String[] args) {

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

            HelloWorld hello=new HelloWorld();

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

            hello.resultsSort(scores);

            

        }

        

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

        public void resultsSort(int[] scores){

            int count=0;

            Arrays.sort(scores);

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

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

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

                    count++;

                }else

                continue;

            }

        }

        

        

        

        

        

        

        

        

        

    }


  • qq_神洲奇迹_0
    2018-07-13 18:59:10

    对成绩从小到大排序,然后倒序输出,规定一个变量判断是否有效成绩,如果这个成绩有效,则变量加一,直到变量等于3退出循环。

    public static void main(String[] args) {
      int []scores={89,-23,64,91,119,52,73};
      Arrays.sort(scores);
      int count=1; //标记有效成绩
      System.out.println("成绩前三名:");
      output(scores,count);
     }
     public static void output(int []s,int c) {
      for(int i=s.length-1;i>=0;i--) {
       if (s[i]>=0&&s[i]<=100&&c<=3) {
        c++;
        System.out.print(s[i]+" ");
       }
        
      }
     }

    可参考我的代码


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

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

1165172 学习 · 17581 问题

查看课程

相似问题