- 描述
- 信息科学技术学院年终评定讲学金,需要对整个年级的学生按照平均分数进行排名.
要求:根据输入的学号和平均成绩,按照平均成绩降序输出学号
如果平均成绩相同,按照输入的顺序输出。 - 输入
- 第一行为N,表示输入N位学生的信息,接着的N行输入学生信息,1<=N<=500
学生信息的格式为:学号 平均成绩
学号的长度小于10,平均成绩在1-100之间. - 输出
- 按照平均成绩降序输出学号,如果平均成绩相同,按照输入顺序输出
- 样例输入
510948001 8010948004 9010948101 9510948102 8010948209 90
- 样例输出
1094810110948004109482091094800110948102
- 提示
- 有些排序算法可能不能保证按照输入顺序输出
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(); } }