题目:
定义长度为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 版权协议,转载请附上原文出处链接和本声明。