Среднее арифметическое положительных элементов массива

Найти среднее арифметическое положительных элементов линейного массива.

Данная задача имеет смысл, если массив заполнен не только положительными числами, но также содержит отрицательные числа и/или возможно нули.

Для заполнения массива можно воспользоваться генератором псевдослучайных чисел. Допустим, надо сгенерировать числа в диапазоне от -5 до 4 включительно. Всего значений 10, смещение на -5. Таким образом, с помощью стандартной функции генерируем числа от 0 до 10 и вычитаем из них 5.

Среднее арифметической находится как отношение суммы чисел к количеству этих чисел. Поскольку надо найти среднее арифметическое только положительных чисел, то, перебирая массив, нам надо определять положительные числа, добавлять их к общей сумме, а также считать их количество. Для этого потребуется две переменные (например, sum и qty), которым до цикла следует присвоить значение 0.

Осуществлять проверку с помощью условного оператора if можно как в отдельном цикле перебора массива, так и в цикле его заполнения. Если очередной элемент массива больше нуля, то следует его значение добавить к переменной sum, а значение переменной qty увеличить на 1.

После того как все элементы массива проверены, надо найденную сумму положительных чисел разделить на их количество. Тем самым будет найдено среднее арифметическое.

Pascal

найти среднее арифметическое элементов массива паскаль

const N = 20;

var
arr: array[1..N] of integer;
i, qty: byte;
sum: word;
begin
sum := 0;
qty := 0;
randomize;
for i:=1 to N do begin
arr[i] := random(10)-5;
write(arr[i],' ');
if arr[i] > 0 then begin
sum := sum + arr[i];
qty := qty + 1;
end;
end;
writeln;
writeln(sum/qty:7:2);
end.



-1 2 -5 -5 -3 1 4 -2 -2 -1 -4 3 -2 1 -2 -1 1 -4 4 4
2.50

Язык Си


#include < stdio.h>
#define N 20

main() {
int a[N], i, q;
float sum;
q = 0;
sum = 0;
srand(time(NULL));
for (i=0; i< N; i++) {
a[i] = rand() % 10 - 5;
printf("%3d", a[i]);
if (a[i] > 0) {
sum += a[i];
q += 1;
}
}
printf("\n");
printf("%5.2f\n", sum/q);
}



1 -1 2 -3 4 -2 -2 -1 -4 -2 -5 3 -2 -3 1 0 4 -4 -5 -1
2.50
Python


from random import random
N = 20
a = []
for i in range(N):
n = int(random() * 10) - 5
a.append(n)
print(a)

s = q = 0
for i in range(N):
if a[i] > 0:
s += a[i]
q += 1
print("%5.2f" % (s/q))



[1, -2, -3, 0, -4, -1, 4, 0, -3, -3, 2, 4, 0, -1, -4, -2, -1, -2, 1, -5]
2.40
КуМир

алг среднее арифм полож
нач
цел таб a[1:20]
цел i
вещ sum, qty
sum := 0
qty := 0
нц для i от 1 до 20
a[i] := int(rand(-5,5))
вывод a[i], " "
если a[i] > 0 то
sum := sum + a[i]
qty := qty + 1
все
кц
вывод нс
вывод sum/qty
кон



4 4 -2 -4 -3 0 -2 0 -4 -4 3 1 2 3 0 -4 4 -4 1 -1
2.75
Basic-256


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



-4 4 -4 3 -3 -3 -4 -2 -5 0 4 4 3 3 -5 -2 -1 3 0 1
3.125

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