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);
}
}