编写一个 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 = minVal
与minVal = num2
不同,因此您永远不会更新minVal
,secondMinVal
相同
【参考方案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 程序,求三个数的绝对值的第二个最小值的主要内容,如果未能解决你的问题,请参考以下文章