java - 不使用数组查找给定整数的第二大数目

标签 java drjava

使用 if 循环,我的任务是将用户提供的数字中的最大和第二大整数放入一对,并将最小和第二大整数放入一对。

我尝试了几种不同的 if 条件,虽然我的程序可以正确找到第二小的整数,但如果我应用相同的逻辑(具有反转的大于/小于符号),我不会得到正确的答案。

           numN = keyboard.nextInt();
           if (numN > numL1){
              numL1 = numN;
           }

           if (numN < numS1){
              numS1 = numN; 
           }
           else if (numN < numS2 && numS2 > numS1){
              numS2 = numN;
           }
           else if (numN > numL2 && numL2 < numL1){
              numL2 = numN;
           }

如果用户输入四个数字1,2,3,4

实际结果:最大和最小对:(4,4) (1,2)

所需结果:最大和最小对:(4,3) (1,2)

最佳答案

你可以像下面这样做:

int max = Integer.MIN_VALUE, secondMax = Integer.MIN_VALUE, min = Integer.MAX_VALUE, secondMin = Integer.MAX_VALUE;

    int input = keyboard.nextInt();
    if (input > max) {
        secondMax = max;
        max = input;
    } else if (input > secondMax) {
        secondMax = input;
    }
    if (input < min) {
        secondMin = min;
        min = input;
    } else if (input < secondMin) {
        secondMin = input;
    }

关于java - 不使用数组查找给定整数的第二大数目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58477557/

相关文章:

JavaFX:从选项卡 Controller 添加新选项卡

java - 使用正则表达式的模式匹配用数字替换

java - 调用方法时出现问题(扫雷)

java - DrJava开关(字符串)问题

java - 我正在尝试合并两个整数字符串,但我正在使用的程序 Java 博士不允许我使用 ArrayUtils?

java - JFrame 的 NullPointerException

java - 如何使图像大小可调

java - 将操作系统的自定义区域设置应用到 Java

java - Java 初学者 - 控制输出 - 生成 Asterix

java - NullPointerExcetion native 方法访问器...哈希词问题