1. 程式人生 > >SDUT-Java——小鑫の日常系列故事(十)——排名次

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

小鑫の日常系列故事(十)——排名次
Time Limit: 1000 ms Memory Limit: 65536 KiB

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

AC程式碼:

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner mi = new Scanner(System.in);
		int n = mi.nextInt();
		String s[] = new String[n + 1];
		int a[] = new int[n + 1];
		for (int i = 0; i < n; i++) {
			s[i] = mi.next();
			a[i] = mi.nextInt();
		}
		int t;
		String si;
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < n - 1 - i; j++) {
				if (a[j] < a[j + 1]) {
					si = s[j];
					s[j] = s[j + 1];
					s[j + 1] = si;
					t = a[j];
					a[j] = a[j + 1];
					a[j + 1] = t;
				}
			}
		}
		for (int i = 0; i < n; i++) {
			System.out.println(s[i] + " " + a[i]);
		}
		mi.close();
	}
}

——————

餘生還請多多指教!