Написать функцию, подсчитывающую среднее арифметическое целого массива. Предварительно объявив и, при необходимости, инициализировав переменные.
Прочитайте статью о том, как определять и использовать функции в своей программе. Если вы не знайте, как работать с массивами, обратитесь к этой статье: Одномерные и двумерные массивы в С++. Если вы хотите сделать программу более универсальной, используйте динамические массивы. Результат работы программы показан ниже:
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
Комментарии
Иван Ватников
#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; }Александр Костенко
#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"; }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; }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; }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; }Bagdosha
Задания средней сложности №4 и №10 — одно и то же задание, и даже ведут на одну и ту же страницу (эту).