编写一个 Java 程序,求三个数的绝对值的第二个最小值

Posted

技术标签:

【中文标题】编写一个 Java 程序,求三个数的绝对值的第二个最小值【英文标题】:Write a Java program that finds the second minimum of the absolute values of three numbers 【发布时间】: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 相同 【参考方案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

以上是关于编写一个 Java 程序,求三个数的绝对值的第二个最小值的主要内容,如果未能解决你的问题,请参考以下文章

求做一个C++程序 求四个数中的最大数和最小数差值.要求用函数实现该功能.

java中返回两个数的最大值

三元运算符求三个数最大值

Java--求三个数的最小公倍数

JAVA_新建一个方法并且求三个数中的最大值

求JAVA大神!!!编写两个类Person和TestPerson