Разработать функцию, в которую передаются в качестве аргументов массив типа float и его размер. Функция должна возвращать среднее арифметическое элементов массива.
Результат работы программы показан на рисунке 1.

Рисунок 1 — Среднее арифметическое
// average.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <iomanip>
using namespace std;
float average(float *, int);
int main(int argc, char* argv[])
{
srand(time(NULL));
setlocale(LC_ALL, "rus");
cout << "Введите размер массива: ";
int size_array; // длинна массива
cin >> size_array;
float *sorted_array = new float [size_array]; // одномерный динамический массив
for (int counter = 0; counter < size_array; counter++)
{
sorted_array[counter] = rand() % 100 / (rand() % 10 + 1.0); // заполняем массив случайными числами
cout << fixed <<setprecision(2) << setw(5) << sorted_array[counter] << " "; // вывод массива на экран
}
cout << "\n";
cout << "Среднее арифметическое = " << average(sorted_array, size_array) << endl; // вызов функции определения среднего арифметического
delete [] sorted_array; // высвобождаем память
system("pause");
return 0;
}
float average(float *vector, int length)
{
float avg = 0; // среднее арифметическое
for (int counter = 0; counter < length; counter++)
{
avg += vector[counter]; // накапливаем сумму элементов массива
}
return (avg / length); // накопленную сумму делим на количество элементов и возвращаем полученно значение в main функцию
}
Комментарии
Максим Назаренко
#include<iostream> #include<conio.h> #include<iomanip> using namespace std; int main() { setlocale(0,""); int x; float sum(0); cout << "Введите размер массива: " ; cin >> x; float *mas = new float[x]; // динамический массив for (unsigned i = 0; i < x; i++) { mas[i] = rand() % 100 / (rand() % 10 + 3.0); // рандомное заполнение cout << fixed << setprecision(2) << mas[i] << " "; } cout << endl; for (unsigned i = 0; i < x; i++) sum += mas[i]; // сложение элементов массива cout << "Среднее арифметическое = " << (sum / x) << endl; delete [] mas; _getch(); return 0; }