в чем проблема?
Burakov Vladimir
41 уровень
всё выведено правильно
Решен
Комментарии (18)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Burakov Vladimir
5 ноября 2019, 08:23
или так
while(!(a == 0)){
even = a % 2 == 0 ? even++ : even;
odd = a % 2 == 1 ? odd++ : odd;
}
a /= 10;
0
Ksenia Volkova Java Developer в DXC Master
5 ноября 2019, 08:24
Если уж очень хочется с тернаркой, то можно так ))
+2
Burakov Vladimir
5 ноября 2019, 08:30
то есть нужно использовать мусорную (дополнительную) переменную для тернарки. Спасибу за ответ.
0
Burakov Vladimir
5 ноября 2019, 08:13
я нашёл ошибку, теперь работает, if(a % 2 == 0){
even++;
}else odd++;
0
Burakov Vladimir
5 ноября 2019, 08:02
0
Burakov Vladimir
5 ноября 2019, 07:59
все равно пишет выведенный текст не соответствует заданию
0
Ksenia Volkova Java Developer в DXC Master
5 ноября 2019, 08:03
Покажи код нормально.
Вот это точно работать не может:
even = a % 2 == 0 ? even : odd++;
+1
Tot_kto_v_tanke
5 ноября 2019, 08:04
по идее even вообще не изменяется, я правильно понимаю?
0
Ksenia Volkova Java Developer в DXC Master
5 ноября 2019, 08:05
Изменяется. В том смысле, что ему иногда присваивается значение odd
+1
Tot_kto_v_tanke
5 ноября 2019, 08:08
точно), присваивания в левой части быть не должно. Вкурил) Осталось, чтобы вкурил ТС
0
Burakov Vladimir
5 ноября 2019, 08:16
Спасибо, я исправил на if и else и программа сработала. Хотел через тернарный оператор, но не получается if(a % 2 == 0){
even++;
}else odd++;
0
Burakov Vladimir
5 ноября 2019, 07:54
public class Solution {
public static int even;
public static int odd;
public static void main(String[] args) throws IOException {
0
Burakov Vladimir
5 ноября 2019, 07:53
я просто не копировал весь код, там она статическая, пишет что вывод на экран не соответствует заданию
0
Burakov Vladimir
5 ноября 2019, 07:49
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(reader.readLine());
while(!(a == 0)){
even = a % 2 == 0 ? even : odd++;
a /= 10;
}
System.out.printf("Even: %d" + " Odd: %d", even, odd);
0
Tot_kto_v_tanke
5 ноября 2019, 07:51
переменная even не объявлена - какой у нее тип?
0
Tot_kto_v_tanke
5 ноября 2019, 07:56
System.out.println("Even: " + even + " Odd: " + odd);
Вот мой вывод - просто и без проблем. Другое дело если хочется поучиться форматировать текст...
0
Tot_kto_v_tanke
5 ноября 2019, 07:59
even = a % 2 == 0 ? even : odd++;
не могу понять, а в этой конструкции even вообще увеличивается когда нибудь?
0
Tot_kto_v_tanke
5 ноября 2019, 08:11
even = a % 2 == 0 ? even : odd++;
UPD. как подсказали - в этом выражении получается следующее:
переменная-счетчик четных принимает значение счетчика нечетных вместо того, чтобы увеличить счет четных на один.
0