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

时间:2016-02-12 22:16:54

标签: c++ vector average 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 个答案:

答案 0 :(得分:2)

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

  2. 在循环中使用values[i-1]代替values[i]

  3. 为什么呢?

    1. 您宣布平均值并未初始化它。为此,它具有在代码执行之前无法知道的值。当您添加value[i] averageaverage的值为value[i]。为此你输错了。您只需要添加所有average。因此,使用0初始化extract()

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