我創建的程序確定最大和最小的數字是用戶輸入的一系列數字。我爲我的代碼創建了幾個測試用例,它們都可以正常工作,但它並不能完成最簡單的測試用例。當用戶輸入單個號碼時。例如,如果用戶將終止值設置爲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' –