andy6804tw
7/19/2016 - 11:06 AM

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?a=6841 題目第一個測資有錯誤排序後前三應該是 4 2 3

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?a=6841

題目第一個測資有錯誤排序後前三應該是 4 2 3

import java.util.*;

public class Main {

	public static void main(String[] args) {
		Scanner scn = new Scanner(System.in);
		int n = scn.nextInt();
		double arr[][] = new double[n][2], temp;//用int也可以[][0]存號碼 [][1]存分數
		for (int i = 0; i < n; i++) {
			arr[i][0] = scn.nextDouble(); //序號
			double tot = 0;
			for (int j = 0; j < 4; j++)//長相、歌聲、談吐、演戲4個加總tot
				tot += scn.nextDouble();
			arr[i][1] = Math.ceil(tot / 4);//tot無條件進位存入arr[i][1];
		}
		for (int i = 0; i < n - 1; i++) {//氣泡排序法分數序號連同排序
			for (int j = i + 1; j < n; j++) {
				if (arr[i][1] == arr[j][1]) {
					if (j < i) {
						temp = arr[i][0];
						arr[i][0] = arr[j][0];
						arr[j][0] = temp;
						temp = arr[i][1];
						arr[i][1] = arr[j][1];
						arr[j][1] = temp;
					}
				} else if (arr[i][1] < arr[j][1]) {
					temp = arr[i][0];
					arr[i][0] = arr[j][0];
					arr[j][0] = temp;
					temp = arr[i][1];
					arr[i][1] = arr[j][1];
					arr[j][1] = temp;
				}
			}
		}
		if (n <= 3)//大於三個就印出前三,無則印出一個
			System.out.printf("%.0f\n", arr[0][0]);
		else
			System.out.printf("%.0f %.0f %.0f\n", arr[0][0], arr[1][0], arr[2][0]);
	}
	    /* 題目:[C_SO29-易] 藝人選秀
       作者:1010
       時間:西元 2016 年 7 月 */
}