为了账号安全,请及时绑定邮箱和手机立即绑定

正在回答

4 回答

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

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;

        }

    }

    

    

    

    

    

    

    

    

    

}


0 回复 有任何疑惑可以回复我~

对成绩从小到大排序,然后倒序输出,规定一个变量判断是否有效成绩,如果这个成绩有效,则变量加一,直到变量等于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]+" ");
   }
    
  }
 }

可参考我的代码


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信