【问题标题】:Write a Java program that finds the second minimum of the absolute values of three numbers编写一个 Java 程序,求三个数的绝对值的第二个最小值
【发布时间】:2021-09-05 12:22:37
【问题描述】:

我试图找到第二个最小值(第二个最小值)。如果我有一个负值,我有时会发现我的代码会以正值工作。输出会混乱。

    int num1, num2, num3, minVal, secondMinVal;
    System.out.print("Ener three integer numbers: ");
    num1 = input.nextInt();
    num2 = input.nextInt();
    num3 = input.nextInt();

    minVal = num1;
    if (num2 < num1 && num2 < num3)
        num2 = minVal;
    else if (num3 < num1 && num3 < num2)
        num3 = minVal;
    System.out.println("The minimum of the absolute values of the entered numbers is " + Math.abs(minVal));

    secondMinVal = num1;
    if (num2 > num1 && num2 < num3)
        num2 = secondMinVal;
    else if (num3 > num1 && num3 < num2)
        num3 = secondMinVal;
    System.out.println("The second minimum value is " + secondMinVal);

我尝试使用 7、-3 和 10 运行,输出将如下所示:

Ener three integer numbers: 3 -1 10
The minimum of the absolute values of the entered numbers is 3
The second minimum value is 3

【问题讨论】:

  • num2 = minValminVal = num2 不同,因此您永远不会更新minValsecondMinVal 相同

标签: java integer minimum


【解决方案1】:

为“minVal”变量分配一个新值,而不是

num2 = minVal;

你应该使用

minVal = num2;

赋值运算符“=”右边的变量的值被赋值给赋值运算符左边的变量(对于整数变量)。

此逻辑适用于任何整数变量(例如“secondMinVal”)。

【讨论】:

    【解决方案2】:
        int num1, num2, num3, minVal, secondMinVal;
        System.out.print("Ener three integer numbers: ");
        num1 = input.nextInt();
        num2 = input.nextInt();
        num3 = input.nextInt();
    
        if(num1 < num2 && num1 < num3)
            minVal = num1;
        else if (num2 < num3)
            minVal = num2;
        else
            minVal = num3;
        System.out.println("The minimum of the absolute values of the entered numbers is " + Math.abs(minVal));
    
        secondMinVal = num1;
        if (num2 > num1 && num2 < num3)
            num2 = secondMinVal;
        else if (num3 > num1 && num3 < num2)
            num3 = secondMinVal;
        System.out.println("The second minimum value is " + secondMinVal);
    

    我想我只是回答我的问题哈哈哈希望这可以帮助任何人。

    【讨论】:

    • 更好。你还是不在。当我输入 2、5 和 7 时,输出为The minimum of the absolute values of the entered numbers is 2 The second minimum value is 2
    猜你喜欢
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    • 1970-01-01
    相关资源
    最近更新 更多