java——小鑫の日常系列故事(十)——排名次

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);
		}
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章