C++计算平均值和标准差

C++ calculate average and standard deviation

我有这个程序,它询问用户用户将输入多少个值,询问这些值并将它们放入向量中。然后我需要计算平均值和标准差。 我有平均数,但看起来有些地方不对劲,我得到了错误的平均数。我不太确定如何开始标准偏差部分。

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


    return 0;
}

感谢任何帮助。

  1. 使用double average = 0;代替double average;

  2. 并在循环内使用 values[i-1] 而不是 values[i]

为什么?

  1. 你声明了 average 但没有初始化它。为此,它有一个在代码执行之前无法得知的值。当您将 value[i]average 添加时,average 的值就在其中。为此,您得到了错误的输出。您只需添加所有 value[i]。所以用 0.

  2. 初始化 average
  3. 矢量索引是基于 0 的。因此插入向量的第 n 个元素将在第 [n-1] 个位置找到。