Среднее арифметическое

  • 8
  • Недоступна
Среднее арифметическое — это такое значение, которое часто используют в статистике. Средняя температура по больнице считается именно по формуле среднего арифметического. Мы подошли к ответственному моменту: напишем программу, в которой вводим с клавиатуры числа, суммируем их и считаем среднее, пока пользователь не введет число -1.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (208)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Георгий5 уровень, Москва
позавчера, 06:04
Не забдьте оставить
System.out.println
только для отображения среднего. Если у вас для отладки были где-то промежуточные принты, то валидатор вас "завернет".
Ivan Matveenko8 уровень, Омск
вторник, 15:24
вводимые числа должны быть double интересно почему это если об этом не слова
max5 уровень
вчера, 15:41
разве?
Примеры:
а) при вводе чисел
1
2
2
4
5
-1
получим вывод
2.8
а вообще float
Михаил7 уровень, Москва
19 мая, 13:18
Программа выводила правильный ответ, но задача не принималась проверщиком, пока не поменял тип вводимых чисел с int на double. Хотя сама переменная СрАрифм была изначально double.
Mihail Klimenko9 уровень, Краснодар
15 мая, 13:32
Конечно, нужно было обязательно забыть о том, что тип выводимых данных - вещественный :) Со второй попытки
Ramil7 уровень
13 мая, 09:40
sum+=x; avr = ((sum+1)/(f++-1)); подскажите пожалуйста, как можно сократить данную запись? Я не смог додуматься как можно вместе посчитать сумму и разделить на количество итераций, и как еще можно не учитывать -1 при решении.
Дима Майборода7 уровень, Ceska
19 мая, 00:01
я сделал через массивы 1) инициализируем пустой массив с длинной 0 2) начинаешь цикл 3) сканируешь ввод с клавы 4) проверяешь что число != -1 5) увеличиваешь длинну массива на 1 6) помещаешь то что ввел с клавы в массив с индексом итерации, 7) увеличиваешь итерацию ну и вконце просто делишь сумму всех элементов массива на длинну массива. вот так и выходит что ты не добавляешь элемент в массив если этот элемент число -1
max5 уровень
вчера, 15:44
вот так -1 не учитывается, прибавление введённого числа происходит ТОЛЬКО если оно не -1
for(float i = 0; true;){
            int a = Integer.parseInt(rd.readLine());
            if(a != -1){
                sum += a;
                i++;
            } else {
                float b = sum/i;
                System.out.println(b);
                break;
            }
Mike6 уровень, Москва
10 часов назад
1) Думаю инициализацию переменных вывести за рамки цикла, не смысла каждый раз тратить на это процессорное время 2) Если сразу ввести -1, то сразу будет выполнена следующая стркоа кода: float b = sum/i;, что не корректно. Т.к. делить на 0 нелья.
Ayrat7 уровень, немосква
10 мая, 14:03
не знал, как не учитывать при сложении и делении -1, поэтому считался и он, НО после выхода из цикла сумма всех чисел (делимое, числитель дроби) увеличивается на +1, а делитель (знаменатель) уменьшается на 1: System.out.println((sum+1)/(i-1)); === индусы мне как братья
Максим Дудин6 уровень, Калининград
20 мая, 21:27
сложно как-то ... есть же подсказка бесконечный цикл ввода с клавиатуры, а потом проверка условия - если введённая цифра -1 конец цикла, а если нет счётчик и суммирование, а уже после конца цикла общую сумму поделить на кол-во...
max5 уровень
вчера, 15:45
коментом выше про это написал =)
Alex8 уровень, Варшава
7 мая, 19:49
(средняя == сумма всех чисел/их количество) 1. 2 переменные типа double - 1 принимает double со сканера. 2 считывает количество вводимых чисел (счетчик). 2.Идем по подсказке, плюс проверка на все числа которые не == -1 -> ->число которое за каждым оборотом петли + считываемое число со сканера (сумма чисел); ->счетчик++; Если вводимое число РОВНО -1; System.out.print(сумма чисел / счетчик); break;
Иван9 уровень, Нижний Новгород
7 мая, 20:28
а для чего счетчику задавать тип double? он же считает целыми числами.
Alex8 уровень, Варшава
7 мая, 21:23
можно и так. Но мне было проще использовать везде double, cчетчику ведь все равно :)
Камиль Сытдыков10 уровень, Санкт-Петербург
5 мая, 19:54
полезная статья как поделить числа int чтобы получить результат double тип double я не мог понять почему у меня неправильно округляет
Алина6 уровень, Москва
25 мая, 20:57
спасибо за ссылку. та же проблема была.
Aleks8 уровень, Москва
4 мая, 11:05
Возникал только один вопрос, как сделать всё с дробной частью(double). Ответ оказался прост везде написать double.
6 мая, 20:26
Не обязательно везде. При делении одной из переменных должна быть double. Вторая - не обязательно.
Artem17 уровень, Рига
2 мая, 20:30
две переменные на будущее , одна для хранения суммы считываемых чисел , вторая для количества считываемых чисел , все это в предлагаемый цикл while от джавараш, далее sout который считает среднее арифметическое (то есть сумма считываемых чисел / количествo считываемых чисел ).