计算客刷题笔记

评奖I

2018-04-20  本文已影响64人  Airycode

东东所在的班级有 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;
        }
    } 
    
}

上一篇下一篇

猜你喜欢

热点阅读