вектор — C ++ рассчитать среднее и стандартное отклонение

У меня есть эта программа, где он спрашивает пользователя, сколько значений пользователь введет, запрашивает значения и помещает их в вектор. Затем мне нужно рассчитать среднее и стандартное отклонение.
У меня есть средняя часть, но, похоже, что-то не так, и я получаю неправильную среднюю. И я не слишком уверен, как начать стандартную часть отклонения.

#include <iostream>
#include <vector>
#include <cmath>

using namespace std;

int main()
{
// Create vector
vector<double> values;

// Declare variables
double count;
double value;
double average;
double stdDev;

// Prompt user and get the number of values
cout << "How many values will you enter?\n";
cin >> count;

// Get the values from user and calculate average
for( double i = 1; i<= count; i++)
{
cin >> value;
values.push_back(value);
average+=values[i];
}
cout << average/count << '\n';

//Calculate standard deviationreturn 0;
}

любая помощь приветствуется.

0

Решение

  1. использование double average = 0; вместо double average;

  2. И использовать values[i-1] вместо values[i] внутри петли.

Зачем?

  1. Вы объявили среднее значение и не инициализировали его. Для этого у него есть значение, которое не может быть известно до выполнения кода. Когда вы добавляете value[i] с average это значение average в этом. За это вы получаете неправильный вывод. Вам нужно добавить только все value[i], Так что инициализируйте average с 0.

  2. Векторная индексация основана на 0. Таким образом, n-й элемент, вставленный в вектор, будет находиться в [n-1] -й позиции.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]