评奖I

作者: Airycode | 来源:发表于2018-04-20 12:45 被阅读64次

    东东所在的班级有 NN 名同学,期末考试进行了数学、语文、英语、地理四门功课的测试。班主任要将这 NN 名学生中总分前三名定为本学期的“学习小标兵”。现在给出这 NN 名学生的姓名和各科成绩,请你编程找到总分前三名,并依次输出他们的姓名。所给数据不会有总分相同的情况。

    输入格式

    输入包含 N + 1N+1 行,第一行仅有一个正整数 NN (N \leq 40N≤40),表示东东班里学生的总数,接下来的 NN 行,每行描述一个学生的考试信息,依次为姓名、数学成绩、语文成绩、英语成绩与地理成绩,两两之间用一个空格分隔。注意:姓名(不会同名)都用小写字母表示(不超过 1010 个字母),成绩全都是不超过 200200 的非负整数。

    输出格式

    输出包含三行,每行仅包含一个学生的姓名,依次为第一名到第三名学生的姓名。

    样例输入

    4
    jing 98 90 87 74
    ming 96 92 85 97
    jun 95 78 56 91
    hong 95 100 85 78
    样例输出

    ming
    hong
    jing

    import java.util.Arrays;
    import java.util.Comparator;
    import java.util.Scanner;
    
    public class Main {
    
        static class Student{
            String name;
            int math;
            int chinese;
            int english;
            int dili;
            int sum;
            
            public Student(String name,int math,int chinese,int english,int dili,int sum){
                this.name = name;
                this.math=math;
                this.chinese=chinese;
                this.english = english;
                this.dili = dili;
                this.sum = sum;
            }
        }
        
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            int N = input.nextInt();
            //List<Student> list = new ArrayList<Student>();
            Student[] list = new Student[N];
            for (int i=0;i<N;i++) {
                String name = input.next();
                int math = input.nextInt();
                int chinese = input.nextInt();
                int english = input.nextInt();
                int dili = input.nextInt();
                int sum = math+chinese+english+dili;
                Student s = new Student(name,math,chinese,english,dili,sum);
                list[i]=s;
            }
            
            //排序
            Arrays.sort(list, StudentCompare.studentCompare);
            
            print(list);
            
        }
        
        private static void print(Student[] list) {
            if (list != null && list.length>0) {
                for (int i=0;i<3;i++) {
                    System.out.println(list[i].name);
                }
            }
            
        }
    
        //比较器
        static class StudentCompare implements Comparator<Student>{
            public static Comparator<Student> studentCompare = new StudentCompare();
            public int compare(Student o1, Student o2) {
                // TODO Auto-generated method stub
                if(o1.sum > o2.sum) return -1;
                return 0;
            }
        } 
        
    }
    
    

    相关文章

      网友评论

        本文标题:评奖I

        本文链接:https://www.haomeiwen.com/subject/damakftx.html