Я создаю программу, которая определяет наибольшее и наименьшее число, это серия чисел, введенных пользователем. Я создал несколько тестов для моего кода, и все они работают, но это не самый простой тестовый пример. Когда пользователь вводит один номер. Например, если пользователь устанавливает конечное значение равным 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
Инициализировать max до очень небольшого числа, т.е.' Double.MIN_VALUE', и минимально до очень большого числа, т.е. 'Double.MAX_VALUE ' –
@ c650 Я думаю, что вы имели в виду полную противоположность - max должен быть' Double.MIN_VALUE', а min должен быть 'Double.MAX_VALUE' –