Товарищи, задачу решил, но считаю, что нагородил лишнего. Пишу псевдокодом чтобы не спойлерить решение:
создать три переменные чтобы считать числа
создать счетчик положительных чисел
создать счетчик отрицательных чисел
повторить три раза блок: {
считать число
если оно положительное увеличить счетчик положительных
если оно отрицательное увеличить счетчик отрицательных
}
вывести счетчик отрицательных
вывести счетчик положительных
Кажется, что должно быть можно завести три переменные и два счетчика в main() и написать функцию которая будет считывать число и инкрементить счетчик либо положительных, либо отрицательных чисел? Но с другой стороны, функция не может влиять на переменную из Main... Пожалуйста, сориентируйте, как это можно сделать эффективнее
Миша Небоярски
16 уровень
Помогите улучшить решение
Обсуждается
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Georgiy
17 сентября 2019, 13:15
Функция может менять переменную класса, создавай статическую переменную и делай с ней что хочешь из любого места этого класса.
С другой стороны твой решение вполне нормальное, но вместо этого я бы создал только одну переменную уже в самом цикле, тут же увеличил нужный счетчик, а после цикла она сама исчезнет.
0
Миша Небоярски
17 сентября 2019, 14:02
То что статическую переменную некоего класса можно менять через метод этого же класса - это понятно. А можно ли сделать в main() статическую переменную и поменять ее через метод класса Solution? У меня Идея ругается, говорит - нельзя:
Представляю себе что-то типа:
Идея, что ожидаемо, "не узнает" переменные-счетчики в теле метода и не разрешает делать счетчики статическими.
0
Igor Dudenkov
17 сентября 2019, 16:27
зачем отдельный метод? проще сделать цикл for с 3мя итерациями и внутри него вводить число и проверять, тогда никаких статиков, все в main будет
+1
Georgiy
17 сентября 2019, 16:54полезный
У меня вообще такая идея возникла (если извращаться) :D
+1
IceBergMaster
17 сентября 2019, 16:54
static это не просто модификатор, чтобы переменная была видимой/невидимой, это связано с процедурами загрузки классов и объектов, с опытом придет понимание в чём разница между полем и локальной переменной, и почему модификаторы в методах не имеют никакого смысла, и соответственно запрещены.
Если хочется решить именно таким способом, то можно расширить метод, чтобы он принимал эти счётчики в качестве параметров.
0
Миша Небоярски
17 сентября 2019, 23:25
в итоге поступил как предложил Игорь, спасибо!
0