прошу пояснить почему она проходит только в том случае если мы задаем изначально число макс мин Integer и с ним потом сравниваем и выводим
public class Solution {
public static void main(String[] args) {
Scanner s = new Scanner(System.in); // obiavlaiem skaner
int max = 2147483647; // obiavili max
while (s.hasNextInt()) // poka v skanere 4isla
{
int n = s.nextInt();
if (n < max) // sravnivaem skaner s max, esli 4islo menshe max = 4islo
max = n;
}
System.out.println(max);
}
}
ВТОРАЯ ЗАДАЧА с кратностью двум
public class Solution {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int min = -2147483648;
while (s.hasNextInt())
{
int n = s.nextInt();
if (n > min)
if (n % 2 == 0)
{
min = n;
}
}
System.out.println(min);
}
}
pevtsov
4 уровень
задача решена
Обсуждается
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia Volkova Java Developer в DXC Master
29 мая 2021, 18:28
Если ты задашь другое начальное значение max, то может оказаться, что все введенные числа будут больше, чем это значение. И тогда условие if (n < max) не выполнится ни разу.
(А зачем переменную для поиска минимума называть max)?
0
pevtsov
29 мая 2021, 18:38
я тебя не понял) тут явно это объявление в начале связано с итоговым выводом в конце максимального/минимального числа integer... но ещё больше не понятен тот факт, что в требованиях задачи тебе нужно выводить число в 3 случаях
• Программа должна выводить на экран максимальное четное из введенных целых чисел.
• Если введено несколько максимальных четных чисел, необходимо вывести любое.
• Если среди введенных символов нет четного числа или введен только один не числовой символ, то вывести на экран минимальное значение числа типа int.
а в итоге, команда System.out.println() у меня одна и выводит она мнимальное/максимальное значение integer, хотя предыдущие два условия тоже верные. Я запутался
0
Ksenia Volkova Java Developer в DXC Master
29 мая 2021, 18:48
В 1-й задаче ты ведь ищешь минимум, верно? То есть в переменной, которую ты выводишь в конце, должно оказаться минимальное число из введенных (и поэтому совершенно нелогично называть ее max).
Если ты задашь какое-то другое начальное значение для переменной - допустим, 0 - а все введенные числа будут больше 0, то условие if ни разу не выполнится, значение переменной так и останется таким, которое ты присвоил в начале. И твоя программа в конце выведет 0 - хотя все введенные числа были положительными.
А если ты задаешь начальное значение как Integer.MAX, то какие бы числа ни были введены - они точно не окажутся больше этого начального значения, и минимум будет найден корректно.
Вопрос про 3 условия я не поняла, извини.
Там основное условие одно - первое. Два следующих являются уточнениями первого для особых случаев.
0
pevtsov
29 мая 2021, 18:56
ок, спасибо, может быть попозже будет более понятно)
0