我的新问题是myMin等于数字相等之前的最后距离而不是实际最小值。例如说我输入的前两个数字是1和2,下一个是1和3,然后是1和1.它说我的最小值是2.0。这是我应该得到的任务。采取最新信息而不是仅更新的方法
输入数字1:9
输入数字2:1
输入数字1:7
输入号码2:2
输入数字1:4
输入编号2:4
最小距离为:5.0。
输入数字1:20
输入数字2:3
输入数字1:23
输入号码2:23
5.0 + 17.0 = 22.0
MY CODE:
double myMin = Double.MAX_VALUE;
double Min1,Min2;
while (!(num1==num2)) {
pairsMin(num1, num2, myMin);
Min1 = pairsMin(num1, num2, myMin);
System.out.print("Enter number 1: ");
num1 = in.nextDouble();
System.out.print("Enter number 2: ");
num2 = in.nextDouble();
if (num1==num2) {
System.out.print("\nThe minimum distance is: " + Min1 + "\n\n");
myMin = Double.MAX_VALUE;
System.out.print("Enter number 1: ");
num1 = in.nextDouble();
System.out.print("Enter number 2: ");
num2 = in.nextDouble();
while (!(num1==num2)) {
pairsMin(num1, num2, myMin);
Min2 = pairsMin(num1,num2,myMin);
System.out.print("Enter number 1: ");
num1 = in.nextDouble();
System.out.print("Enter number 2: ");
num2 = in.nextDouble();
if(num1==num2) {
double totMin = Min1+Min2;
System.out.print("\n" + Min1 + " + " + Min2 + " = " + totMin + "\n");
}
}
}
} // end while loop
} // end main method
public static double pairsMin(double num1, double num2, double myMin){
double dist = Math.abs(num1-num2);
if (dist<myMin) { // if dist is smaller than the minimum, then dist will be the new minimum
myMin = dist;
}
return myMin;
}
}
今天早些时候你没有发布这个确切的问题吗? (原谅我,如果我错了,我记得看到完全相同的问题) – ItamarG3
这是同样的任务问题,但我有两个不同的问题。第一个是如何只在while循环内部打印一些东西,而这个是如何让它更新myMin,而不是仅仅使用最后一个myMin。 –
那么你有没有尝试从你最后一个问题得到解决这个问题?您能否重构代码以便阅读更容易? – ItamarG3