Как составить программу на нахождение среднего в массиве

An array is a collection of elements stored at contiguous memory locations. Even if you’re a beginner, you’ve likely heard of them as they’re the most used data structures in programming.

You must know how to perform basic operations on an array like finding the sum of elements of an array, finding the product of elements of an array, reversing an array, finding the largest and smallest element in an array, etc. to be fully prepared for coding interviews.

In this article, you’ll learn how to find the mean of an array using Python, C++, JavaScript, and C.

Problem Statement

You’re given an array arr. You need to find the mean of arr.

Example 1: Let arr = [1, 2, 3, 4, 5, 6, 7, 8]

Mean of arr = (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8) / 8 = 4.5

Thus, the output is 4.5.

Example 2: Let arr = [1, 1, 1, 1, 1, 1]

Mean of arr = (1 + 1 + 1 + 1 + 1 + 1) / 6 = 1

Thus, the output is 1.

Formula to find the mean of an array:

Mean of an array = sum of all elements of the array / total no. of elements in the array

Approach to Solve the Problem

You can find the mean of an array by following the approach outlined below:

  1. Initialize a variable sumOfElements (with a value of 0) to store the sum of all elements in the array.
  2. Iterate through the array and add each element of the array with sumOfElements.
  3. Finally, return sumOfElements / sizeOfArray.

C++ Program to Find the Mean of an Array

Below is the C++ program to find the mean of an array:

 // C++ program to find the mean of an array
#include <iostream>
using namespace std;

float calculateMean(int arr[], int size)
{
    int sumOfElements = 0;
    for(int i=0; i<size; i++)
    {
        sumOfElements += arr[i];
    }
    return (float)sumOfElements/(float)size;
}

void printArrayElements(int arr[], int size)
{
    for(int i=0; i<size; i++)
    {
        cout << arr[i] << " ";
    }
    cout << endl;
}

int main()
{
    int arr1[] = {1, 2, 3, 4, 5, 6, 7, 8};
    int size1 = sizeof(arr1)/sizeof(arr1[0]);
    cout << "Array 1:" << endl;
    printArrayElements(arr1, size1);
    cout << "Mean of the array: " << calculateMean(arr1, size1) << endl;

    int arr2[] = {1, 1, 1, 1, 1, 1};
    int size2 = sizeof(arr2)/sizeof(arr2[0]);
    cout << "Array 2:" << endl;
    printArrayElements(arr2, size2);
    cout << "Mean of the array: " << calculateMean(arr2, size2) << endl;

    return 0;
}

Output:

 Array 1:
1 2 3 4 5 6 7 8
Mean of the array: 4.5
Array 2:
1 1 1 1 1 1
Mean of the array: 1

Python Program to Find the Mean of an Array

Below is the Python program to find the mean of an array:

 # Python program to find the mean of an array

def calculateMean(arr, size):
    sumOfElements = 0
    for i in range(size):
        sumOfElements += arr[i]
    return sumOfElements/size

def printListElements(arr, size):
    for i in range(size):
        print(arr[i], end=" ")
    print()

arr1 = [1, 2, 3, 4, 5, 6, 7, 8]
size1 = len(arr1)
print("Array 1:")
printListElements(arr1, size1)
print("Mean of the array:", calculateMean(arr1, size1))

arr2 = [1, 1, 1, 1, 1, 1]
size2 = len(arr2)
print("Array 2:")
printListElements(arr2, size2)
print("Mean of the array:", calculateMean(arr2, size2))

Output:

 Array 1:
1 2 3 4 5 6 7 8
Mean of the array: 4.5
Array 2:
1 1 1 1 1 1
Mean of the array: 1.0

JavaScript Program to Find the Mean of an Array

Below is the JavaScript program to find the mean of an array:

 // JavaScript program to find the mean of an array

function calculateMean(arr, size) {
    let sumOfElements = 0;
    for(let i=0; i<size; i++) {
        sumOfElements += arr[i];
    }
    return sumOfElements/size;
}

function printArrayElements(arr, size) {
    for(let i=0; i<size; i++) {
        document.write(arr[i] + " ");
    }
    document.write("
");
}

var arr1 = [1, 2, 3, 4, 5, 6, 7, 8];
var size1 = arr1.length;
document.write("Array 1:" + "
");
printArrayElements(arr1, size1);
document.write("Mean of the array: " + calculateMean(arr1, size1) + "
");

var arr2 = [1, 1, 1, 1, 1, 1];
var size2 = arr2.length;
document.write("Array 2:" + "
");
printArrayElements(arr2, size2);
document.write("Mean of the array: " + calculateMean(arr2, size2) + "
");

Output:

 Array 1:
1 2 3 4 5 6 7 8
Mean of the array: 4.5
Array 2:
1 1 1 1 1 1
Mean of the array: 1

C Program to Find the Mean of an Array

Below is the C program to find the mean of an array:

 // C program to find the mean of an array
#include <stdio.h>

float calculateMean(int arr[], int size)
{
    int sumOfElements = 0;
    for(int i=0; i<size; i++)
    {
        sumOfElements += arr[i];
    }
    return (float)sumOfElements/(float)size;
}

void printArrayElements(int arr[], int size)
{
    for(int i=0; i<size; i++)
    {
        printf("%d ", arr[i]);
    }
    printf("⁠n");
}

int main()
{
    int arr1[] = {1, 2, 3, 4, 5, 6, 7, 8};
    int size1 = sizeof(arr1)/sizeof(arr1[0]);
    printf("Array 1: ⁠n");
    printArrayElements(arr1, size1);
    printf("Mean of the array: %f ⁠n", calculateMean(arr1, size1));

    int arr2[] = {1, 1, 1, 1, 1, 1};
    int size2 = sizeof(arr2)/sizeof(arr2[0]);
    printf("Array 2: ⁠n");
    printArrayElements(arr2, size2);
    printf("Mean of the array: %f ⁠n", calculateMean(arr2, size2));

    return 0;
}

Output:

 Array 1: 
1 2 3 4 5 6 7 8
Mean of the array: 4.500000
Array 2:
1 1 1 1 1 1
Mean of the array: 1.000000

Solve Problems Based on Arrays

Arrays are one of the most asked topics in programming interviews. It’s wise to practice some of the most common problems based on arrays like finding the maximum and minimum elements of an array, finding the product of all elements in an array, removing duplicate elements from an array, reversing an array, sorting an array, etc. if you’re serious about getting a job in the programming field.

Перейти к содержанию

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

Просмотров 12к. Обновлено 15 октября 2021

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

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

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

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

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.



3 31 24 25 42 5 26 39 27 43
26.50

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

Язык Си


#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 %.2fn", average(a));
}

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



82 35 2 32 56 55 33 41 99 45
48.00

Python

среднее арифметическое 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)



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

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

s = 0
for i in range(N):
s += a[i]
можно заменить на

s = sum(a)

Написать функцию, подсчитывающую среднее арифметическое целого массива. Предварительно объявив и, при необходимости, инициализировав переменные.

Прочитайте статью о том, как определять и использовать функции в своей программе. Если вы не знайте, как работать с массивами, обратитесь к этой статье: Одномерные и двумерные массивы в С++. Если вы хотите сделать программу более универсальной, используйте динамические массивы. Результат работы программы показан ниже:

CppStudio.com

50 83 54 32 73 22 51 67 28 7

среднее арифметическое = 46.7

// avg_function.cpp: определяет точку входа для консольного приложения.

#include "stdafx.h"
#include <iostream>
using namespace std;

#include <ctime> // прототип функции time()
double avg(const int *arrayPtr, int size_array);// прототип функции нахождения среднего арифметического

int main(int argc, char* argv[])
{
setlocale(LC_ALL,"rus");
srand(time(0)); // рандомизация
const int length_array = 10; // размер массива
int vector[length_array]; // объявляе массив соответствующего размера

for (int counter = 0; counter < length_array; counter++)
{
vector[counter] = rand() % 100; // инициализация массива случайным числом в интервале [0;99]
cout << vector[counter] << " "; // печать элемента массива
}
cout << "nсреднее арифметическое = "  << avg(vector, length_array) << endl; // запуск функции
system("pause");
return 0;
}

double avg(const int *arrayPtr, int size_array) // функция нахождения среднего арифметического
{
int sum = 0; // хранение суммы элементов массива
for (int counter = 0; counter < size_array; counter++)
{
sum += arrayPtr[counter]; // накапливаем сумму
}

return (double)sum/size_array; // возвращаем среднее арифметическое
}

Вот пример работы этой программы:

CppStudio.com

50 83 54 32 73 22 51 67 28 7

среднее арифметическое = 46.7

Следующее решение данной задачи предоставил нам Vladislav Anonymous, за это мы ему очень благодарны. Код программы смотрим ниже, разбираемся и задаем вопросы на форуме.

#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;

void sred(int)
{
    srand(time(NULL));
    int n;
    cout<<"Введите размер массива - ";
    cin>>n;
    int arr[n];
    int num = 0;
    int res = 0;
    cout<<"nn";
    for(int i=1;i<=n;i++)
    {
        res = rand()%100;
        arr[i] = res;
        cout<<arr[i]<<" ";
        num +=arr[i];
    }
    num = num/n;
    cout<<"nСреднее арифметическое = "<<num<<endl;
}

int main()
{
    setlocale(LC_ALL,"Rus");
    int n;Введите размер массива - 20

47 30 85 77 73 74 9 55 94 65 8 67 92 21 69 61 80 55 94 40 
Среднее арифметическое = 59
    int num;
    sred(n);
return num;
}

 А вот как выглядит работа этой программы в консоли.

CppStudio.com

Введите размер массива - 20

47 30 85 77 73 74 9 55 94 65 8 67 92 21 69 61 80 55 94 40 
Среднее арифметическое = 59

Например:

int[] numbers = {5, 8, 12, -18, -54, 84, -35, 17, 37};

Как найти среднее?
Какой алгоритм, или может есть специальные функции для этого?

Nofate's user avatar

Nofate

34.3k15 золотых знаков64 серебряных знака93 бронзовых знака

задан 17 июл 2015 в 16:55

Александр's user avatar

АлександрАлександр

9736 золотых знаков13 серебряных знаков33 бронзовых знака

1

Ну например:

IntStream.of(numbers).average();

Это Java 8, stream API. Проверка: http://ideone.com/hSng8I

ответ дан 17 июл 2015 в 16:57

VladD's user avatar

VladDVladD

206k27 золотых знаков289 серебряных знаков521 бронзовый знак

6

Сам алгоритм, который работает для всех версий Java:

// среднее арифметическое - сумма всех чисел деленная на их количество
int[] numbers = {5, 8, 12, -18, -54, 84, -35, 17, 37};

double average = 0;
if (numbers.length > 0)
{
    double sum = 0;
    for (int j = 0; j < numbers.length; j++) {
         sum += numbers[j];
    }
    average = sum / numbers.length;
}

ответ дан 17 июл 2015 в 21:54

pavelip's user avatar

1

OptionalDouble average = Arrays.stream(numbers).average();

ответ дан 17 июл 2015 в 17:36

kandi's user avatar

kandikandi

5,10910 золотых знаков47 серебряных знаков96 бронзовых знаков

class average {
    public static void main(String args[]) {
        int num [] = {5, 8, 12, -18, -54, 84, -35, 17, 37};
        double sum = 0;
        for (int x: num) {
        sum += x;
        }
            System.out.print("среднее арифметическое чисел равно: " + sum/num.length);
    }
}

ответ дан 22 авг 2018 в 14:10

Бахтияр Акпалинов's user avatar

В этом руководстве мы обсудим, как вычислить среднее значение списка в Python.

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

Здесь мы будем использовать три разных подхода для вычисления среднего числа элементов, представленных в списке, с помощью Python.

  1. Использование sum().
  2. Использование reduce().
  3. Использование mean().

Итак, приступим …

Использование sum()

В первом методе мы используем sum() и len() для вычисления среднего значения.

Следующая программа иллюстрирует нам это:

 
# Python program to get average of a list 
def calc_average(lst): 
 return sum(lst) / len(lst) 
lst = [24, 19, 35, 46, 75, 29, 30, 18] 
average = calc_average(lst) 
# Printing the average value of the list 
print("The average of the list is ", round(average, 3)) 

Вывод:

The average of the list is  34.5 

Объяснение:

Пришло время взглянуть на то, что мы сделали в вышеуказанной программе:

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

В следующей программе мы увидим, как reduce() может помочь нам сделать то же самое.

Используя reduce()

Программа, представленная ниже, показывает, как это можно сделать.

 
# Python program to obtain the average of a list 
# Using reduce() and lambda 
from functools import reduce 
def calc_average(lst): 
 return reduce(lambda a, b: a + b, lst) / len(lst) 
#initializing the list 
lst = [24, 19, 35, 46, 75, 29, 30, 18] 
average = calc_average(lst) 
# Printing average of the list 
print("The Average of the list is ", round(average, 2)) 

Вывод:

The average of the list is  34.5 

Объяснение:

Давайте разберемся, что мы здесь сделали:

  1. На первом этапе мы импортировали функцию calc_average, чтобы использовать ее в нашей программе для вычисления среднего числа элементов.
  2. Теперь мы создали функцию calc_average, которая принимает список в качестве параметра и использует лямбда (точный способ написания функций в python) внутри сокращения для вычисления среднего значения.
  3. После этого мы инициализировали, чье среднее значение мы хотим вычислить.
  4. На следующем шаге мы передали этот список в качестве параметра нашей функции.
  5. Наконец, мы распечатали полученное значение.

В последней программе мы узнаем, как использовать mean() для вычисления среднего значения списка.

Использование mean()

Следующая программа показывает, как это можно сделать:

 
# Python program to obtain the average of a list 
# Using mean() 
from statistics import mean 
def calc_average(lst): 
 return mean(lst) 
lst = [24, 19, 35, 46, 75, 29, 30, 18] 
average = calc_average(lst) 
# Printing the average of the list 
print("The average of the list is ", round(average, 2)) 

Вывод:

The average of the list is  34.5 

Объяснение:

  1. На первом этапе мы импортировали среднее значение из статистики, чтобы использовать его в нашей программе для вычисления среднего значения элементов.
  2. Теперь мы создали функцию calc_average, которая принимает список в качестве параметра и использует mean() для вычисления среднего значения.
  3. После этого мы инициализировали, чье среднее значение мы хотим вычислить.
  4. На следующем шаге мы передали этот список в качестве параметра нашей функции.
  5. Наконец, мы распечатали полученное значение.

Вывод

В этом руководстве мы изучили различные методы вычисления среднего числа элементов, представленных в списке, с помощью Python.

Изучаю Python вместе с вами, читаю, собираю и записываю информацию опытных программистов.

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