Вывести элементы массива, которые больше среднего арифметического

Задача

Дан одномерный массив. Найти среднее арифметическое его элементов. Вывести на экран только те элементы массива, которые больше найденного среднего арифметического.

Решение

Переменные:

  • a - массив;
  • sum - сумма элементов массива;
  • avrg - среднее значение.

Пример алгоритма решения задачи:

  1. Заполняем массив (например, случайными числами).
  2. Переменной sum изначально присваиваем значение 0.
  3. Вычисляем сумму элементов, в цикле перебирая массив и добавляя значение каждого к переменной sum.
  4. Находим среднее арифметическое, путем деления суммы на количество элементов (хранится в константе N).
  5. Выводим на экран весь массив и найденное среднее значение. (Это не обязательно, но необходимо для удобства.)
  6. Снова в цикле перебираем массив. Если очередной элемент больше среднего арифметического, то выводим этот элемент на экран.
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

Тема

Одномерные массивы

Уровень

Простые задачи

Последняя редакция

Добавить комментарий