成績排序

題目描述

用一維數組存儲學號和成績,而後,按成績排序輸出。 java

輸入描述:
輸入第一行包括一個整數N(1<=N<=100),表明學生的個數。
接下來的N行每行包括兩個整數p和q,分別表明每一個學生的學號和成績。


輸出描述:
按照學生的成績從小到大進行排序,並將排序後的學生信息打印出來。
若是學生的成績相同,則按照學號的大小進行從小到大排序。

 

輸入例子:
3
1 90
2 87
3 92

 

輸出例子:
2 87
1 90
3 92

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
 
   
   
public class Main {
     private static class Student{
         private int stuno;
         private int grade;
         public Student( int stuno, int grade){
             this .stuno = stuno;
             this .grade = grade;
         }
     }
 
     public static void main(String[] args) {
         Scanner in = new Scanner(System.in);
         while (in.hasNext()){
             int n = in.nextInt();
             Student[] stus = new Student[n];
             for ( int i = 0 ; i < n; i++) {
                 stus[i] = new Student(in.nextInt(), in.nextInt());
             }
             Arrays.sort(stus, new Comparator<Student>() {
 
                 @Override
                 public int compare(Student o1, Student o2) {
                     if (o1.grade!=o2.grade)
                         return o1.grade-o2.grade;                  
                     return o1.stuno-o2.stuno;
                 }
             });
             for (Student student : stus) {
                 System.out.println(student.stuno+ " " +student.grade);
             }
         }
         in.close();
     }
   
}
相關文章
相關標籤/搜索