在java中如何连续输入若干的名字以及对应的数字(分数),然后再将名字按分数从大到小的排列输出?
对于这种涉及到不同的类型的数据时怎么做到一一对应的进行排序?
int n, i, j, temp;
Scanner num = new Scanner(System.in);
n = num.nextInt();
String name[] = new String[n];
int score[] = new int[n];
for (i = 0; i <= n; i++) {
name[i] = num.nextLine();
score[i] = num.nextInt();
}
for (i = 1; i <= n - 1; i++) {
for (j = 1; j <= n - 1; j++) {
if (score[i] < score[i + 1]) {
temp = score[i];
score[i] = score[i + 1];
score[i + 1] = temp;
}
}
}
for (i = n; i > 0; i--) {
System.out.println(name[i]);
}
这是我想的,但是很显然是错的。
你在做数据交换时,要将name也进行交换的,交换部分要增加
String nametemp;
nametemp= name[i];
name[i] = name[i + 1];
name[i + 1] = nametemp;
热门标签: