import java.util.Random;
public class Array02 {
static final int LEN = 10;//数组的长度
public static void main(String[] args) {
int[] a = new int[LEN];
init(a);
print(a);
// System.out.println("最大:" + max(a));
// System.out.println("最小:" + min(a));
System.out.println(secondMax(a));
}
public static void init(int[] a) {
Random random = new Random();
for (int i = 0; i < LEN; i++) {
a[i] = random.nextInt(100) + 1;//左闭右开限制范围
}
}
/**
* 打印数组中数据
*
* @param a 数组
*/
public static void print(int[] a) {
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + "\t");
}
System.out.println();
}
public static int max(int[] a) {
// int t = Integer.MIN_VALUE;
//假设第一个数最大 a[0]
int t = a[0];
for (int i = 1; i < LEN; i++) {
if (a[i] > t) {
t = a[i];
}
}
return t;
}
public static int min(int[] a) {
//int t = Integer.MAX_VALUE;
int t = a[0];
for (int i = 1; i < LEN; i++) {
if (a[i] < t) {
t = a[i];
}
}
return t;
}
public static int secondMax(int[] a) {
// int t = max(a);
//
// for(int i=0;i<LEN;i++){
// if(a[i]==t){
// a[i]=-1;
// }
// }
// print(a);
// return max(a);
int m = a[0];//最大值
int second = a[1]; //第二大
if (second > m) { //m和second的交换
int tmp = m;
m = second;
second = tmp;
}
//m>second
for (int i = 2; i < LEN; i++) {
if (a[i] > m) {
second = m;
m = a[i];
} else if (a[i] < second) {
continue;
} else {
second = a[i];
}
}
return second;
}
}
数组求最值
最新推荐文章于 2024-07-27 17:56:15 发布