JAVA——实现数组遍历求最大值和第二大值

  • Post author:
  • Post category:java


题目:


定义长度为10的int数组,数组中的10个元素为随机生成的1-100的数字,要求:打印数组中第二大的数和第二小的数字

打印格式:

原数组内容

90 34 12 35 98 23 17 71 4 66

数组中的第二大的数字为:90

数组中的第二小的数字为:12

3 2 1 1 4

最大值为: 4

最小值为: 1

求第二大值 :

数组中的第二大的数字为:3

数组中的第二小的数字为:2

代码如下:

public class Test7 {
	public static void main(String[] args) {

		int[] arr = new int[10];

		Random r = new Random();

		// 采用随机数给数组的每一个元素赋值
		for (int i = 0; i < arr.length; i++) {
			arr[i] = r.nextInt(100) + 1;
		}

		// 数组的遍历
		System.out.print("[");
		for (int i = 0; i < arr.length; i++) {
			if (i == arr.length - 1) {
				System.out.println(arr[i] + "]");
			} else {
				System.out.print(arr[i] + ", ");
			}
		}

		// 求数组的最大值
		int max = arr[0];

		// 求数组的最小值
		int min = arr[0];

		for (int i = 1; i < arr.length; i++) {
			if (arr[i] > max) {
				max = arr[i];
			}
			if (arr[i] < min) {
				min = arr[i];
			}
		}

		System.out.println("数组的最大值为:" + max);
		System.out.println("数组的最小值为:" + min);

		// 定义参照物
		// 90 34 12 35 98 23 17 71 4 66     
		// 第二大的元素
		int max1 = min;  //4
		// 第二小的元素
		int min1 = max;  //98

		for (int i = 0; i < arr.length; i++) {
			if (arr[i] > max1 && arr[i] != max) {
				max1 = arr[i];
			}

			if (arr[i] < min1 && arr[i] != min) {
				min1 = arr[i];
			}
		}

		System.out.println("数组中第二大的元素为:" + max1);
		System.out.println("数组中第二小的元素为:" + min1);

	}

	private static void method1() {
		int[] arr = new int[10];

		Random r = new Random();

		// 给数组的元素赋值, 并保证元素唯一
		for (int i = 0; i < arr.length; i++) {// i = 3
			arr[i] = r.nextInt(100) + 1;
			for (int x = 0; x < i; x++) {
				if (arr[i] == arr[x]) {
					i--;
				}
			}
		}

		// 冒泡排序
		for (int x = 0; x < arr.length - 1; x++) {
			for (int y = 0; y < arr.length - 1 - x; y++) {
				if (arr[y] > arr[y + 1]) {
					int temp = arr[y];
					arr[y] = arr[y + 1];
					arr[y + 1] = temp;
				}
			}
		}

		// 数组的遍历
		System.out.print("[");
		for (int i = 0; i < arr.length; i++) {
			if (i == arr.length - 1) {
				System.out.println(arr[i] + "]");
			} else {
				System.out.print(arr[i] + ", ");
			}
		}

		System.out.println("数组的第二小的元素为:" + arr[1]);
		System.out.println("数组的第二大的元素为:" + arr[arr.length - 2]);
	}

}

输出结果如下:

[69, 93, 49, 62, 91, 66, 84, 89, 82, 95]
数组的最大值为:95
数组的最小值为:49
数组中第二大的元素为:93
数组中第二小的元素为:62



版权声明:本文为u011110301原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。