Функция, вычисляющая среднее арифметическое элементов массива

Задача

Написать функцию, которая вычисляет среднее арифметическое элементов массива, переданного ей в качестве аргумента.

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

Среднее арифметическое определяется как сумма элементов, деленная на их количество.

Параметром функции является целочисленный массив, возвращает она вещественное число.

В теле функции элементы перебираются в цикле, каждый добавляется к переменной, в которой накапливается сумма. После завершения работы цикла полученная сумма делится на количество элементов в массиве. Полученное значение возвращается из функции в основную ветку программы. Здесь оно может быть присвоено какой-либо переменной или сразу выведено на экран.

Исходный код на языке программирования Pascal

const N = 10;
type
    arrtype = array[1..N] of integer;
var
    arr: arrtype;
    i: byte;
    avrg: real;
 
procedure fill_array(var a: arrtype);
begin
    for i:=1 to N do a[i]:=random(50)+1;
end;
 
function average(a:arrtype):real;
var sum:integer;
begin
    sum := 0;
    for i:=1 to N do sum:=sum+a[i];
    average := sum / n;
end;
 
begin
    randomize;
    fill_array(arr);
    for i:=1 to N do write(arr[i]:4);
    writeln;
    avrg := average(arr);
    writeln(avrg:3:2);
end.

Пример(ы) выполнения программы на языке Pascal

   3  31  24  25  42   5  26  39  27  43
26.50

Особенности решения на языке программирования Pascal

В данном случае, кроме функции, определяющей среднее арифметическое, используется процедура заполнения массива случайными числами.

Исходный код на языке программирования C

#include <stdio.h>
#define N 10
float average(int arr[]);

main() {
    int a[N];
    int i, min1, min2, buff;
    srand(time(NULL));
    for (i=0; i<N; i++) {
        a[i] = rand() % 100;
        printf("%3d", a[i]);
    }
    printf("\n %.2f\n", average(a));
}

float average(int arr[]) {
    int sum, i;
    sum = 0;
    for (i=0; i<N; i++) sum += arr[i];
    return sum/N;
}

Пример(ы) выполнения программы на языке C

 82 35  2 32 56 55 33 41 99 45
 48.00

Исходный код на языке программирования Python

from random import random
N = 10
 
def average(a):
    s = 0
    for i in range(N):
        s += a[i]
    return s/N
 
arr = [0] * N
for i in range(N):
    arr[i] = int(random() * 100)

b = average(arr)
print(arr)
print(b)

Пример(ы) выполнения программы на языке Python

[30, 63, 67, 29, 29, 54, 30, 29, 41, 0]
37.2

Особенности решения на языке программирования Python

В языке Python есть встроенная функция sum(), которая возвращает сумму элементов переданного ей списка. Поэтому код

s = 0
    for i in range(N):
        s += a[i]

можно заменить на

s = sum(a)

Тема

Функции

Уровень сложности

Средний

Дата публикации