代码
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter students:");
int nu = input.nextInt();
String[] str = new String[nu];
int[] age = new int[nu];
for (int i = 0; i < nu; i++) {
str[i] = input.next();
age[i] = input.nextInt();
}
//拿最大值
int max = 0;
for (int i = 0; i < age.length; i++) {
if (age[i] > max)
max = age[i];
}
//从最大值递减
int ca = 0;
while (true) {
for (int i = 0; i < age.length; i++) {
if (age[i] == max) {
System.out.println(str[i]);
ca++;
if (ca == 2)
return;
}
}
max--;
}
}
分析代码
比较一个最大值出来是很方便的,但是如果还要再拿第二大的呢,第三大的等等,当然我们可以将最大的取出来,再比较,甚至排序,但是如果我们不想破坏它的数组下表,上面提供了一种方法是 先将最大值比较出来,然后将max递减再比较,如果相同那么可以知道数组值的大小,而且还知道数组下标,并且不改变数组。