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

 

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据架构师Pony

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值