Решить на языке с++, каждую строку кода желательно закомментировать, чтобы я понял и смог объяснить как я решил преподу). Дана последовательность из n элементов, заменить каждый элемент массива средним арифметическим всех предшествующих ему элементов
Ответы
Пример работы во вложениях.
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <algorithm>
#include <iterator>
#include <numeric>
#include <clocale>
#define UINT unsigned int
using namespace std;
int main() {
setlocale(LC_ALL, "Russian");
const int N = 5;
double Arr[N];
/*ГЕНЕРАЦИЯ ДАННОЙ ПОСЛЕДОВАТЕЛЬНОСТИ*/
srand((UINT)time(NULL));
generate(Arr, Arr + N, []() { return rand() % 91 + 10; });
/*ВЫВОД НА ЭКРАН ИЗНАЧАЛЬНОГО МАССИВА*/
cout << "Исходный массив:" << endl;
copy(Arr, Arr + N, ostream_iterator<int>(cout, " "));
cout << endl;
/*РАСЧЕТ СРЕДНЕГО АРИФМЕТИЧЕСКОГО ДЛЯ КАЖДОГО ЭЛЕМЕНТА*/
for(int i = N-1; i >= 0; --i)
Arr[i] = accumulate(Arr, Arr + i, 0.0) / i;
Arr[0] = 0; // Перед первым элементом нечего складывать :D
/*ВЫВОД НА ЭКРАН КОНЕЧНОГО МАССИВА*/
cout << "Результирующий массив массив:" << endl;
copy(Arr, Arr + N, ostream_iterator<int>(cout, " "));
cout << endl;
system("pause");
return 0;
}
![](https://st.uroker.com/files/4ca/4ca923b378608fb0cd685adad390afb2.png)