##主要用数组来完成
import java.util.Arrays;
import java.util.Scanner;
class F
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.print("请输入学生个数 :");
int x = input.nextInt();
int[] z = new int[x];
String[] y = new String[x];
for (int i=0; i<x; i++)
{
int m =i+1;
System.out.print("请输入第 " + m + " 个学生姓名 :");
y[i] = input.next();
System.out.print("请输入第"+ m +"个学生成绩 :");
z[i] = input.nextInt();
}
for (int i = 0; i<z.length-1; i++) //1 --- n-1
{
int currentMax = z[i]; //设置第一个值为最大值
String Maxname = y[i]; //设置第一个名字为成绩最大的
int currentMaxIndex = i; //设置最大成绩的下标
for (int j = i+1; j < z.length; j++) // 2 ---- n
{
if (currentMax < z[j]) //如果第二个值大于第一个值 降序排列
{
currentMax = z[j]; //把 第二个值设置成最大值
currentMaxIndex = j; //把 第二个值的下标设置成最大值下标
Maxname = y[j]; //把下一个名字设置为成绩最大的名字
}
}
if (currentMaxIndex != i) // 如果最大值下标不等于第一个下标
{
z[currentMaxIndex] = z[i]; //交换
z[i] = currentMax; //成绩内容
y[currentMaxIndex] = y[i];//交换
y[i] = Maxname; //名字内容
}
}
for (int l=0; l<y.length; l++)
{
System.out.println(y[l]);
}
}
}
//欢迎提出更加合适的解决方法