Решить на языке с++, каждую строку кода желательно закомментировать, чтобы я понял и смог объяснить как я решил преподу). Дана последовательность из n элементов, заменить каждый элемент массива средним арифметическим всех предшествующих ему элементов

Ответы

Ответ дал: MaxLevs
0

Пример работы во вложениях.

#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;

}

Приложения:
Вас заинтересует