如何拿到陣列的最大值和第二大值
阿新 • • 發佈:2018-11-02
程式碼
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遞減再比較,如果相同那麼可以知道陣列值的大小,而且還知道陣列下標,並且不改變陣列。