правильно ли записан код о том, как изменится среднее арифметическое значение,нечетные индексы умножаем на мин. элемент

Условие:

дан одномерный массив. Как изменится среднее арифметическое его элементов, если его элементы с нечётными индексами умножить на значение минимального элемента

Код

#include <iostream> 
#include <conio.h>
using namespace std;

int main(){
  int n=5;
  int array[n] = {1, 2, 3, 4, 5};
  int min_element = array[0];
  for (int i = 1; i < n; i++) {
    if (array[i] < min_element) {
      min_element = array[i];
    }
  }
  for (int i = 0; i < n; i++) {
    if (i % 2 != 0) { 
      array[i] *= min_element;
    }
  }
  
  int sum_elements = 0;
  for (int i = 0; i < n; i++) {
    sum_elements += array[i];
  }
  float initial_mean = static_cast(sum_elements) / n;
  sum_elements = 0;
  for (int i = 0; i < n; i++) {
    sum_elements += array[i];
  }
  float new_mean = static_cast(sum_elements) / n;
  cout << "Исходное среднее арифметическое: " << initial_mean << endl;
  cout << "Новое среднее арифметическое: " << new_mean << endl;
  getch();
  return 0;
}

Ответы (1 шт):

Автор решения: LazyHat

Вы считаете исходную сумму после того как умножили все значения массива на минимальный элемент. Поэтому исходное и новое среднее арифметическое будет одинаковым в любом случае.

Так же советую поменять числа в массиве, чтобы минимальным элементом было не 1.

И у вас ошибка в синтаксисе кастов. У вас не указан тип, в который кастуется(хотя может компилятор сам узнает тип, тогда нет ошибки):

Ваш вариант: float inital_mean = static_cast(sum_elements) / n; Верный вариант: float initial_mean = static_cast<float>(sum_elements) / n

→ Ссылка