【发布时间】: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相同