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

将无效值置0 后排序再取最大值

package test;
import java.util.Arrays;
import java.util.Scanner;

public class HelloWorld{
    public static void main(String[] args){
        int[] scores = new int[6]; //定义一个数组保存6位同学的成绩
        for(int i=0 ;i<6; i++){ //循环输入6位同学的成绩
            System.out.println("请输入第"+(i+1)+"位同学成绩:");
            Scanner input = new Scanner(System.in);
            scores[i] = input.nextInt();
        }
        System.out.println("考试成绩前三名为:");
        //调用方法
        HelloWorld top3 = new HelloWorld();
        top3.top3(scores);
    }
    public void top3(int[] scores){//过滤有效分数,并将无效分数置0
        for(int i = 0;i<scores.length; i++){
            if(scores[i]<0 || scores[i]>100){
                scores[i]=0;
            }
        }
        Arrays.sort(scores); //将分数排序
        for(int i = scores.length-1; i>scores.length-4;i--){//倒序取出3个最大值
            System.out.println(scores[i]);
        }
    }
}


正在回答

1 回答

public class HelloWorld {
    import java.util.*;
    //完成 main 方法
    public static void main(String[] args) {
        int[] scores={89,-23,64,91,119,52,73};
        HelloWorld.sortScores(scores);
     }
    
    //定义方法完成成绩排序并输出前三名的功能
            public static void sortScores(int[] scores){
                ArrayList<Integer> al=new ArrayList<Integer>();
                for(int i:scores){
                    if(i>=0&&i<=100)
                        al.add(i);
                    else
                        continue;    
                }
                Collections.sort(al);
                int count=al.size();
                if(count>3){
                    System.out.println("考试成绩的前三名为:");
                    for(int i=count-1;i>-1;i--){
                        System.out.println(al.get(i));
                    }
                }else{
                    System.out.println("有效成绩不足三个!");
                }
        }
 
}


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

举报

0/150
提交
取消

将无效值置0 后排序再取最大值

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号