Вывести элементы массива, которые больше среднего арифметического
Задача
Дан одномерный массив. Найти среднее арифметическое его элементов. Вывести на экран только те элементы массива, которые больше найденного среднего арифметического.
Похожие задачи
Решение
Переменные:
- a - массив;
- sum - сумма элементов массива;
- avrg - среднее значение.
Пример алгоритма решения задачи:
- Заполняем массив (например, случайными числами).
- Переменной sum изначально присваиваем значение 0.
- Вычисляем сумму элементов, в цикле перебирая массив и добавляя значение каждого к переменной sum.
- Находим среднее арифметическое, путем деления суммы на количество элементов (хранится в константе N).
- Выводим на экран весь массив и найденное среднее значение. (Это не обязательно, но необходимо для удобства.)
- Снова в цикле перебираем массив. Если очередной элемент больше среднего арифметического, то выводим этот элемент на экран.
const N = 10; var a: array[1..N] of integer; i: byte; avrg: real; sum: integer; begin randomize; for i:=1 to N do a[i]:=random(50)+1; sum := 0; for i:=1 to N do sum := sum + a[i]; avrg := sum/N; // весь массив for i:=1 to N do write(a[i]:3); writeln; writeln('Среднее арифм.: ',avrg:4:2); // больше avrg for i:=1 to N do if a[i]>avrg then write(a[i]:3); writeln; end.
Пример выполнения программы:
7 36 21 48 33 46 7 17 19 41 Среднее арифм.: 27.50 36 48 33 46 41
Как разновидность подобной задачи может быть такая:
Вычислить сумму элементов массива, превосходящих по значению среднее арифметическое среди значений элементов массива.
Для ее решения необходимо не выводить элементы на экран, а суммировать их. После чего вывести значение суммы.
const N = 10; var arr: array[1..N] of real; i: byte; arg, sum: real; begin randomize; arg := 0; for i:=1 to N do begin arr[i] := random(); write(arr[i]:5:2); arg := arg + arr[i]; end; arg := arg / N; writeln; writeln('Среднее арифметическое: ', arg:5:2); sum := 0; for i:=1 to N do begin if arr[i] > arg then sum := sum + arr[i]; end; writeln('Сумма элементов, превосходящих среднее арифметическое: ', sum:5:2); end.
Комментарии
Средний рост
С клавиатуры вводится натуральное число n. За ним последовательно вводятся данные о росте n учащихся класса. Определите средний рост учащихся всего класса. Решить задачу без использования массивов.