Всем👋
Объясните, пожалуйста, как программа с помощью счетчика определяет сколько чисел положительных, а сколько отрицательных ?
Алгоритм решения задачи:
1. объявляем статистические переменные pozitivNumber=0, negativNumber=0;
2. объявляем main
3. пишем ридер для ввода чисел с клавиатуры (я использовал BufferedReader)
4. пишем условие при котором будет выполняться команда :
if (n1>0)
{
pozitivNumber++;
}
и аналогично для остальных переменных как положительных, так и отрицательных.
Maxim Galushko
8 уровень
Решение через счетчик
Обсуждается
Комментарии (8)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Gleb B.
25 сентября 2019, 06:30
Подробнее опишите проблему. Но как я понимаю, если в краце то идея в том что при делении на 2, если остаток от деления равен нулю- число четное если нет нечетное, данный оборот определяют чему равен остаток : х % 2 (для 4 например будет 0, а вот для 3-х остаток будет равен 1
После каждой итерации вам необходимо "отрезать" последнюю цифру от числа деля число на 10 и перезаписывая результат в переменную: х= х / 10.
Ну и все это чудо должно быть в цикле
0
Maxim Galushko
25 сентября 2019, 07:55
Собственно вот код:
public static void main(String[] args) throws Exception {
//считываем число с клавиатуры
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String number1=bufferedReader.readLine();
String number2=bufferedReader.readLine();
String number3=bufferedReader.readLine();
//преобразуем переменные типа String в int
int n1=Integer.parseInt(number1);
int n2=Integer.parseInt(number2);
int n3=Integer.parseInt(number3);
//задаем условия для выполнения команд
if (n1>0){pozitivNumber++;} //каждый if это отдельный if. т.е. для каждой переменной свой if//ОБЪЯСНИ ЭТУ СТРОЧКУ КОДА
if (n2>0){pozitivNumber++;} //ЗАЧЕМ УВЕЛИЧИВАЕМ НА 1 ПЕРЕМЕННЫЕ?
if (n3>0){pozitivNumber++;}
System.out.println("количество положительных чисел: "+pozitivNumber);
if (n1<0){negativNumber++;}
if (n2<0){negativNumber++;}
if (n3<0){negativNumber++;}
System.out.println("количество отрицательных чисел: "+negativNumber);
}
Не понятно, как счетчик, например вот тут:
if (n3<0){negativNumber++;}
помогает определить программе количество положительных/отрицательных чисел? Ведь я и так задал условие n3<0, соответственно, если я ввожу 3-е число, которое меньше нуля, оно и есть отрицательное, вот причем тут счетчик?
0
IceBergMaster
25 сентября 2019, 08:13
А как вы в обычной жизни что либо считаете? Вот дали вам 100 чисел, и попросили посчитать количество положительных, можете описать процесс?
0
Maxim Galushko
25 сентября 2019, 08:29
1.По знаку перед числом определяю положительное число или отрицательное
2. Положительные числа в один столбик, отрицательные в другой
3. Нумеруем списки - получаем результат (количество положительных и отрицательных чисел).
Но, к сожалению, понимание сего процесса не приводит меня к пониманию работы вышеописанного кода.
Каждая вводимая переменная у меня со своим счетчиком, зачем, ведь я ввожу только одно значение (одно в n1, одно в n2, одно в n3). Зачем мне считать количество введенных значений в каждую конкретную переменную, ведь больше одного значения и так нельзя ввести?
0
IceBergMaster
25 сентября 2019, 08:48
Странно, я бы использовал подход попроще))
Просто по знаку бы определял, положительное ли число "if (n1>0)", и считал бы у себя в уме "Раз", "Два", "Три" и т.д. ну или пальцы загибал бы на руке, +1 палец каждое положительное число. Оба варианта - условный счётчик.
"Каждая вводимая переменная у меня со своим счетчиком" - с чего вы это взяли? Счётчик один для всех переменных (точнее два, один для положительных, другой для отрицательных).
+1
АлександрExpert
25 сентября 2019, 05:02
Уточните вопрос.
Вам непонятно, как написать такую программу или непонятен приведенный кусок?
+1
Maxim Galushko
25 сентября 2019, 07:53
Собственно вот код:
public static void main(String[] args) throws Exception {
//считываем число с клавиатуры
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String number1=bufferedReader.readLine();
String number2=bufferedReader.readLine();
String number3=bufferedReader.readLine();
//преобразуем переменные типа String в int
int n1=Integer.parseInt(number1);
int n2=Integer.parseInt(number2);
int n3=Integer.parseInt(number3);
//задаем условия для выполнения команд
if (n1>0){pozitivNumber++;} //каждый if это отдельный if. т.е. для каждой переменной свой if//ОБЪЯСНИ ЭТУ СТРОЧКУ КОДА
if (n2>0){pozitivNumber++;} //ЗАЧЕМ УВЕЛИЧИВАЕМ НА 1 ПЕРЕМЕННЫЕ?
if (n3>0){pozitivNumber++;}
System.out.println("количество положительных чисел: "+pozitivNumber);
if (n1<0){negativNumber++;}
if (n2<0){negativNumber++;}
if (n3<0){negativNumber++;}
System.out.println("количество отрицательных чисел: "+negativNumber);
}
Не понятно, как счетчик, например вот тут:
if (n3<0){negativNumber++;}
помогает определить программе количество положительных/отрицательных чисел? Ведь я и так задал условие n3<0, соответственно, если я ввожу 3-е число, которое меньше нуля, оно и есть отрицательное, вот причем тут счетчик?
0
Ilya
25 сентября 2019, 09:24
Программа делает то что в ней прописывается...
Так как вы проверяете три различных переменных - у вас присутствует три "if" для проверки что число положительное и три "if" что число отрицательное. Пока сравнение не будет проведено программа не сможет вам ответить введенное число положительное или отрицательное...
при условии " если n1>0" счетчик положительных чисел "pozitivNumber++;" увеличить на 1
если убрать if(n3<0) то программа не сможет проверять является ли переменная n3 отрицательным числом и увеличить счетчик количества отрицательных чисел на 1, если n3<0.
В дальнейшем проверку нескольких переменных можно сделать через один If, если разрешено изменить код программы на другой.
pozitivNumber++ и negativNumber++ это не "количество введенных значений в каждую конкретную переменную" !!!! +1