我创建的程序确定最大和最小的数字是用户输入的一系列数字。我为我的代码创建了几个测试用例,它们都可以正常工作,但它并不能完成最简单的测试用例。当用户输入单个号码时。例如,如果用户将终止值设置为25,则输入-1,最后输入终止值,输出应为 最大值:-1和最小值:-1。然而,我的代码将输出最大:0和最小:-1 - 我为什么会发生这种情况(因为我在运行循环之前将最大值初始化为0),但我该如何解决这个问题?如何通过这个测试用例?
这里是我的代码...
Scanner scan = new Scanner(System.in);
// Declaration variables
double min;
double max = 0;
System.out.println("Enter terminating number: ");
double terminator = scan.nextDouble();
System.out.println("Enter a number: ");
double num = scan.nextDouble();
min = num;
if (num == terminator) {
System.out.println("There must be one number in the list.");
// break;
} else {
while (num != terminator) {
System.out.println("");
num = scan.nextDouble();
if ((num < min) && (num != terminator)) {
double temp = min;
min = num;
max = temp;
} else if ((num > min) && (num != terminator)) {
max = num;
} else {
max = min;
}
}
System.out.println("Largest: " + max);
System.out.println("Smallest: " + min);
}
'max'应该是'Double.MIN_VALUE' ...和'min = Double.MAX_VALUE' – Charles
将最大值初始化为非常小的数字,即'Double.MIN_VALUE',最小值为非常大的数字,即'Double.MAX_VALUE ' –
@ c650我认为你的意思完全相反 - max应该是'Double.MIN_VALUE',min应该是'Double.MAX_VALUE' –