Добрый день. Код программы:
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
int a=sc.nextInt();
int b=sc.nextInt();
int c=sc.nextInt();
int n1,n2,n3;
if (a<=b)
{ if (a<=c) {
n1=a;
if (b<=c){
n2=b;
n3=c;
}
else {
n2=c;
n3=b;
}
}
else {
n1=c;
n2=a;
n3=b;
}
}
else {
if (b<=c) {
n1=b;
if (a<=c){
n2=a;
n3=c;
}
else {
n2=c;
n3=b;
}
}
}
System.out.println(n3 +" "+n2+" "+n1);
}
Вот так не работает, пишет, что в System.out.println(n3+....) не определен n3.
Стоит заменить объявление переменных на int n1=0,n2=0,n3=0; - все ок. Не понимаю почему так.
Irina Verbitskaya
8 уровень
Подскажите пожалуйста, почему не работает
Обсуждается
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #2322530
31 июля 2020, 10:15
надо инициализировать переменные. даже идея ругается
потому что логика неверная.
вот пример:
а вообще для таких вещей удобней написать пару методов max и min и использовать их, или использовать встроенные Math.min/Math.max
0
Irina Verbitskaya
31 июля 2020, 15:31
Но ведь int a; это тоже самое, что и int a=null; Это же и есть инициализация? Или я какие-то тонкости не догоняю?
В чем тогда разница между a=null и a=0?
0
hidden #2322530
31 июля 2020, 15:33
int a не может быть null. это примитивный тип.
String a может быть null. а int нет
null можно присвоить в переменные объектного типа
0