import java.util.Scanner;
import java.util.Arrays;
class StudentScores {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter the # of students");
int numOfStudents = input.nextInt();
int[] scores = new int[numOfStudents];
String[] names = new String[numOfStudents];
for (int i = 0; i < numOfStudents; i++) {
input.nextLine();
System.out.print("Enter name: ");
names[i] = input.nextLine();
System.out.print("Enter score: ");
scores[i] = input.nextInt();
}
// This doesn't sort anything, it just prints out the result in unsorted way
/*for (int i = 0; i < numOfStudents; i++) {
System.out.println(names[i] + " " + scores[i]);
}*/
Arrays.sort(scores);
reverse(scores);
for (int u: scores) {
System.out.println(u);
}
}
public static int[] reverse(int[] array) {
for (int i = 0, j = array.length - 1; i < j; i++, j--) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
return array;
}
}
原來的問題是: 編寫提示用戶輸入學生,學生的姓名,以及他們的分數數量中的程序,並在打印學生姓名降低他們的分數的順序。學生的分數排序需要的Java
我的問題是如何顯示名稱與排序的分數列表?
你一定不必給我一個完整的解決方案,只是給我一個提示,所以我可以自己解決它。
要對它們進行排序,可以使類實現Comparable並正確實現compareTo(不要忘記重寫equals和hashCode)。或者,使用「比較器」。 – SJuan76
此外,重寫'toString'方法也會簡化打印。 – Santa
@Santa:是的,這個解決方案對我來說很好。 – JavaNoob