JavaStudy——0049:班级排名

总时间限制: 1000ms 内存限制: 65536kB

描述
信息科学技术学院年终评定讲学金,需要对整个年级的学生按照平均分数进行排名.
要求:根据输入的学号和平均成绩,按照平均成绩降序输出学号
如果平均成绩相同,按照输入的顺序输出。

输入
第一行为N,表示输入N位学生的信息,接着的N行输入学生信息,1<=N<=500
学生信息的格式为:学号 平均成绩
学号的长度小于10,平均成绩在1-100之间.
输出
按照平均成绩降序输出学号,如果平均成绩相同,按照输入顺序输出

样例输入

5
10948001 80
10948004 90
10948101 95
10948102 80
10948209 90

样例输出

10948101
10948004
10948209
10948001
10948102

Accepted代码

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        int n=in.nextInt();
        ArrayList<Student> stu=new ArrayList<Student>();
        for (int i=1;i<=n;i++) {
            Student student=new Student(in.next(), in.nextInt());
            stu.add(student);
        }
        Collections.sort(stu);
        for (Student student:stu)
            System.out.println(student.getNo());
        in.close();
    }
}

class Student implements Comparable<Student> {
    public String no;
    public int score;
    Student(String no,int score) {
        this.no=no;
        this.score=score;
    }
    public String getNo() {
        return no;
    }
    public int getScore() {
        return score;
    }
    public int compareTo(Student s) {
        return s.getScore()-this.getScore();
    }
}

你可能感兴趣的:(OpenJudge,-,javastudy)