package comxaqf.w02_objectoriented.a_saturday1030;
import java.util.Scanner;
/**
【题6】
6、五个任意整数,找出其中第二大的数字
45 65 18 59 98
max maxs
@author xiangtao.p
*
@Date 2020年10月31日
*/
public class Maximum {
public static void main(String[] args) {
Maximum maximum = new Maximum();
maximum.maxOfSec();
//
}
// 【求第二大值得办法】
public void maxOfSec() {
int max = 0;// 第一大
int maxs = 0;// 第二大
//五组数据
int num1 = 0;
int num2 = 0;
int num3 = 0;
int num4 = 0;
int num5 = 0;
//标记处最大值
boolean isMax1 = false;
boolean isMax2 = false;
boolean isMax3 = false;
boolean isMax4 = false;
boolean isMax5 = false;
// 0.1输出五组数据
Scanner scan = new Scanner(System.in);
for (int i = 1; i < 6; i++) {
System.out.println("请输出第" + i + "个数:");
switch (i) {
case 1:
num1 = scan.nextInt();
break;
case 2:
num2 = scan.nextInt();
break;
case 3:
num3 = scan.nextInt();
break;
case 4:
num4 = scan.nextInt();
break;
case 5:
num5 = scan.nextInt();
break;
}
}
// 1.1找出最大值,并应用isMax标记
max = num1;
isMax1 = true;
if (num2 >= max) {
max = num2;
isMax1 = false;
isMax2 = true;
}
if (num3 >= max) {
max = num3;
isMax1 = false;// num1和num2从新标记
isMax2 = false;
isMax3 = true;
}
if (num4 >= max) {
max = num4;
isMax1 = false;// num1和num2、num3从新标记
isMax2 = false;
isMax3 = false;
isMax4 = true;
}
if (num5 >= max) {
max = num5;
isMax1 = false;// num1和num2、num3、num4从新标记
isMax2 = false;
isMax3 = false;
isMax4 = false;
isMax5 = true;
}
// 1.2 给最大值赋值0
if (isMax1) {
num1 = 0;
} else if (isMax2) {
num2 = 0;
} else if (isMax3) {
num3 = 0;
} else if (isMax4) {
num4 = 0;
} else if (isMax5) {
num5 = 0;
}
// 1.3最大值赋值0,剩下的数字总从新找出最大值 ,就是整个数组中的第二大值了
maxs = num1;
if (num2 >= maxs) {
maxs = num2;
}
if (num3 >= maxs) {
maxs = num3;
}
if (num4 >= maxs) {
maxs = num4;
}
if (num5 >= maxs) {
maxs = num5;
}
System.out.println("第二大的数字是:" + maxs);
}
}