Среднее арифметическое целого массива

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

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

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

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<<"\n\n";
    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

Следующие статьи помогут вам в решении данной задачи:
Автор: admin
Дата: 12.09.2012
Поделиться:

Комментарии

  1. Иван Ватников

    #include "stdafx.h"
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
    	int N, S=0, k=0;
    	float srarifm;
    	cout << "Vvedite rozmir masivu: ";
    	cin >> N;
    	float *mass = new float[N];
    	cout << "Vvedite elementy masivu; "<< endl;
    	for (int i = 0; i < N; i++)
    		cin >> mass[i];
    	cout << "Massiv: ";
    	for (int i = 0; i < N; i++) 
    	{
    		k++;
    		S += mass[i];
    		cout << mass[i] << "  ";
    	}
    	cout << endl;
    	srarifm = S / k;
    	cout <<"Summa elementiv masivu = "<< S<< endl;
    	cout << "Kilkist elementid masivu = "<<k<<endl;
    	cout << "Serednie arifmetichne elementiv masivu = " << srarifm << endl;
    	delete[] mass;
    	system("pause");
        return 0;
    }
  2. Александр Костенко

    #include <iostream>
    #include <time.h>
    using namespace std;
    
    void main()
    {
    	const int str = 5;
    	const int stb = 10;
    	srand(time(0));
    	setlocale(LC_ALL, "rus");
    
    	int ar[str][stb];
    
    	//заполняем массив
    	for (int i = 0; i < str; i++)
    	{
    		for (int j = 0; j < stb; j++)
    		{
    			ar[i][j] = rand() % 50;
    			cout << ar[i][j] << "\t";
    		}
    		cout << endl<<endl;
    	}
    
    	//считаем сумму
    	int sum = 0;
    	for (int i = 0; i < str; i++)
    	{
    		for (int j = 0; j < stb; j++)
    		{
    			sum += ar[i][j];
    		}
    	}
    	cout <<"Сумма значений всех элементов массива = "<< sum <<"\n\n";
    
    	//считаем среднее арифметическое 
    	int ave;
    	ave = sum / (str*stb);
    	cout << "Среднее арифметическое всех элементов массива = " << ave << "\n\n";
    }
  3. petruska

    petruska

    Слишком легко для этого раздела

    #include "stdafx.h"  //here all librarys
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	srand(time(NULL));
    
    	double aver=0;
    	int size=0,sum=0;
    	cout << "Enter size of array: ";
    	cin >>size;
    
        int * pA=new int [size]; 
    
    	// in cycle: init array,add element of array to sum,show element
    	cout << "Your array: ";
    	for (int i=0; i < size; i++)
    	{
    		pA[i]=rand() %20;
    		sum+=pA[i];
    		cout << pA[i] <<' ';
    	}
    	
    	cout <<endl << "Average number on array is: " <<sum/size<<endl;
        delete [] pA;
    
        return 0;
    }
  4. Andrey_Qbasic_oldschool

    Andrey_Qbasic_oldschool

    Вот )

    using namespace std;
    
    void fsredAref(int sred){
    int sred1=0;
    int *mas= new int [sred];
    for(int i=0;i<sred;i++){
        cout<<setw(3)<<((mas[i])=(rand()%99));
    sred1+=mas[i];
    }
    cout<<"\n"<<sred1/sred<<"\n";
    delete mas;
    }
    
    int main(int argc, char* argv[])
    
    {
    int x;
    cin>>x;
    fsredAref(x);
    
    system("pause");
    return 0;
    }
  5. Annka

    Annka

    Мой вариант, когда не нужно вводить предварительно размер массива.

     

    /**
    This program shows the middle of all members in dynamic array
    **/
    
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int *ptrarray  = new int [100] ;
    
        cout << "Enter the members of the array: (Enter zero to finish the input) " << endl;
        int i = 0;
        float sum = 0;
        while (ptrarray[i-1] != 0)
        {
                cin >> ptrarray[i];
                sum += ptrarray[i];
                i++;
        }
        delete [] ptrarray;
        cout << "Middle is " << sum/(i-1);
        return 0;
    }
  6. Bagdosha

    Задания средней сложности №4 и №10 — одно и то же задание, и даже ведут на одну и ту же страницу (эту).

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.