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

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

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

  1. Посчитать сумму всех элементов массива. Для этого до цикла вводится переменная для суммы (например, sum). Далее в цикле перебираются элементы массива и значение каждого добавляется к этой переменной. Подсчет суммы можно выполнить в том же цикле, что и заполнение массива.
  2. Когда сумма элементов посчитана, находится среднее арифметическое, которое равно сумме разделенной на количество элементов массива.
  3. Массив перебирается в цикле, каждый элемент сравнивается с найденным средним значением. Если элемент меньше, то он выводится на экран (или сохраняется в другом массиве).

Язык Си

#include < stdio.h>
#define N 10

main() {
int a[N];
int i;
float sum, avrg;
srand(time(NULL));
sum = 0;
for (i=0; i< N; i++) {
a[i] = rand() % 100;
printf("%3d", a[i]);
sum += a[i];
}
printf("\n");

avrg = sum/N;
printf("%.2f\ n",avrg);
for (i=0; i< N; i++)
if (a[i] < avrg) printf("%3d", a[i]);
printf("\n");
}



38 67 71 56 34 11 17 84 92 61
53.10
38 34 11 17
Python

from random import random
N = 10
arr = [0] * N
for i in range(N):
arr[i] = int(random() * 100)
print(arr)
avrg = sum(arr)/N
print(avrg)
less = []
for i in range(N):
if arr[i] < avrg:
less.append(arr[i])
print(less)



[90, 24, 8, 0, 48, 52, 68, 38, 21, 70]
41.9
[24, 8, 0, 38, 21]

В Питоне сумму элементов списка можно найти с помощью встроенной функции sum().
КуМир

алг меньше среднего
нач
цел N = 10
цел таб a[1:N]
цел i
вещ sum, avrg
sum := 0
нц для i от 1 до N
a[i] := irand(-50,50)
вывод a[i]:4
sum := sum + a[i]
кц
вывод нс
avrg := sum/N
вывод avrg, нс
нц для i от 1 до N
если a[i] < avrg то
вывод a[i]:4
все
кц
кон



-21 42 -23 25 46 20 12 -45 -35 -45
-2.4
-21 -23 -45 -35 -45
Basic-256

N = 10
dim arr(N)
sum = 0
for i=0 to N-1
arr[i] = int(rand()*100)
print arr[i] + " ";
sum = sum + arr[i]
next i
print
avrg = sum/N
print avrg
for i=0 to N-1
if avrg > arr[i] then print arr[i] + " ";
next i



46 16 26 4 36 91 51 99 70 33
47.2
46 16 26 4 36 33

Pascal

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.



13 23 45 2 9 28 47 30 18 12
Среднее арифм.: 22.70
13 2 9 18 12

Оцените статью
Добавить комментарий