班级排名
-
时间限制:
- 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
提示
-
有些排序算法可能不能保证按照输入顺序输出
import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); ArrayList<Student> students=new ArrayList<Student>(); for(int i=1;i<=n;i++){ Student student=new Student(sc.next(),sc.nextInt()); students.add(student); } Collections.sort(students); for(Student student:students){ System.out.println(student.getSno()); } } } class Student implements Comparable<Student>{ private String sno; private int score; public Student(String sno, int score) { this.sno = sno; this.score = score; } public String getSno() { return sno; } public void setSno(String sno) { this.sno = sno; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } public int compareTo(Student s) { return s.getScore()-this.getScore(); } }