如何拿到数组的最大值和第二大值

代码


	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递减再比较,如果相同那么可以知道数组值的大小,而且还知道数组下标,并且不改变数组。

猜你喜欢

转载自blog.csdn.net/qq_40435621/article/details/83474910