Как найти среднее значение элементов одномерного массива

Например:

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

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.

Среднее
арифметическое (обозначим как SA)
всех значений элементов массива
подсчитывается по формуле:

SA
= S / К,

где
S – это сумма всех
элементов, K – количество
просуммированных элементов. Алгоритмы
поиска суммы и количества элементов
были подробно рассмотрены в п/п 2.2.3.1. Но
в тех случаях, когда SA
находят только среди элементов,
удовлетворяющих некоторому условию,
следует учитывать тот факт, что таких
элементов в массиве может и не быть, и
тогда К = 0. Чтобы избежать деления на 0,
необходимо при получении значения SA
осуществлять соответствующую проверку:
К > 0. На рис. 9 приведена блок-схема
алгоритма поиска SA
положительных элементов и фрагмент
программы.

Среднее
геометрическое значений массива
(обозначим через SG)
вычисляется по следующей формуле:

SG
= K
P,

где
Р – произведение элементов массива, K
– количество элементов. Аналогично,
как и в алгоритме поиска SА
элементов, удовлетворяющих некоторому
условию, необходимо учитывать вариант
К = 0. На рис. 10 приведена блок-схема
алгоритма поиска среднего геометрического
отрицательных элементов массива и
соответствующий фрагмент программы.

S:=
O;

K
:= 0;

for
i:=1 to N do

if
a[i]> 0 then

begin

S
:= S + A[i];

K
:= K +1;

end;

if
K > 0 then

begin

SA
:= S/K;

writeln
(‘ SA= ‘, SA);

end

else

writeln(‘
K = 0 ‘);

… *

Рис.
9

P:=
1;

K
:= 0;

for
i:=1 to N do

if
A[i]< 0 then

begin

P
:= P* A[i];

K
:= K +1;

end;

if
K > 0 then

begin

SG
:= EXP(1/K * LN(P)) ;

writeln
(‘ SG= ‘, SG);

end

else

writeln(‘
K = 0 ‘);

Рис. 10

2.2.3.3. Обработка элементов одномерного массива, имеющих чётные индексы

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

Пусть,
например, требуется умножить на 2 значения
элементов с чётными индексами. Понятно,
что обработку массива придётся начать
с элемента, имеющего номер 2, т.е. переменная
i,
обозначающая
индекс элемента, примет начальное
значение, равное
2. Выбирать из массива элементы для
обработки следует «перешагивая»
через элемент, т.е. индекс i
будет изменяться с шагом
2.

Б

лок-схема
описанного алгоритма приведена на
рисунке 11. Фрагмент
программы записан ниже. В нём использован
не привычный уже цикл со счётчиком (цикл
FOR),
а универсальный цикл «пока»
(цикл WHILE),
который, в отличие от FOR,
приспособлен к работе
с любым шагом (в том числе и с шагом 2).

i:=2;

while
i < =N do

begin

A[ i ] := A[ i ] * 2;

i:=i+2;

end;


Рис.11

Следует
обратить внимание, что в случае работы
с нечетными индексами начальное значение
i:=1,
i
будет изменяться с шагом 2. С помощью
подобных алгоритмов можно обрабатывать
элементы массива с индексами, кратными
любому числу. Например,
найти сумму элементов с индексами,
кратными 3 ( i=3;
шаг +3) заменить нулём каждый
четвёртый элемент массива и т.п.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

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

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

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

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

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

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

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

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

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

Pascal

Язык Си

Python

КуМир

Basic-256

uses crt;
const nmax=100;
var a:array[1..nmax] of real;
    n,i,j,k:byte;
    sr:real;
begin
clrscr;
randomize;
repeat
write('Размер массива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Массив:');
sr:=0;
for i:=1 to n do
 begin
  a[i]:=10*random;
  write(a[i]:0:2,' ');
  sr:=sr+a[i];
 end;
sr:=sr/n;
writeln;
writeln('Среднее=',sr:0:2);
writeln;
writeln('Вычитание среднего:');
for i:=1 to n do
 begin
  a[i]:=a[i]-sr;
  write(a[i]:0:2,' ');
 end;
readln
end.

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Как найти автора фанфика
  • Как найти iphone find my iphone
  • Com порт не открыт как исправить
  • Как найти тесто на кефире
  • Как найти массу протонов в воде

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии