Problem Description
小鑫在來到SDUT之後,經過十分刻苦的學習和努力終於進入了ACM集訓隊。很快又一次ACM集訓隊的選拔就要開始了,集訓隊員們又忙碌了起來。他也十分幸運的被學長抓來當苦力。 o(∩_∩)o
這次學長給他分配的任務是寫一個自動排名的程序,我們知道當選拔賽結束的時候,每一個參與選拔的同學都會有一個自己的分數。而集訓隊需要根據大家的分數排名來決定誰能夠進入集訓隊,這個任務就落在了小鑫身上。
你能幫小鑫來完成這個程序麼?
Input
輸入的第一行爲n 0<n<=50;
下面還有n行每行爲一個人名和ta所得到的分數。保證沒有相同的分數。
人名爲英文單詞,長度不超過10。
Output
輸出爲n行,每行一個人名與他的得分。每一行最後沒有多餘的空格。
具體輸出格式見樣例。
Sample Input
3
Dan 10
John 50
Danny 30
Sample Output
John 50
Danny 30
Dan 10
思路:java中沒有結構體,但可以用類來進行封裝。
import java.util.*;
import java.util.Scanner;
class Supply implements Comparable<Supply> {
int num;
String name;
public Supply(int n, String name) {
this.num = n;
this.name = name;
}
public int compareTo(Supply s) {
return s.num - this.num;//按照降序進行排列
}
}
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
Supply[] s = new Supply[110];
for (int i = 0; i < n; i++) {
String n2 = input.next();
int n1 = input.nextInt();
s[i] = new Supply(n1, n2);
}
Arrays.sort(s, 0, n);
for (int i = 0; i < n; i++) {
System.out.println(s[i].name + " " + s[i].num);
}
}
}