1. 程式人生 > >如何拿到陣列的最大值和第二大值

如何拿到陣列的最大值和第二大值

程式碼


	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遞減再比較,如果相同那麼可以知道陣列值的大小,而且還知道陣列下標,並且不改變陣列。