关于java:五个任意整数找出其中第二大的数字

38次阅读

共计 1444 个字符,预计需要花费 4 分钟才能阅读完成。

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

}

}

正文完
 0