班级排名

来源:互联网 发布:日语语法书推荐 知乎 编辑:程序博客网 时间:2024/05/19 23:01

                                                          班级排名

时间限制:
1000ms
内存限制:
65536kB
描述
信息科学技术学院年终评定讲学金,需要对整个年级的学生按照平均分数进行排名.
要求:根据输入的学号和平均成绩,按照平均成绩降序输出学号
如果平均成绩相同,按照输入的顺序输出。
输入
第一行为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();  }    }