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;
}
感谢任何帮助。
使用double average = 0;
代替double average;
并在循环内使用 values[i-1]
而不是 values[i]
。
为什么?
你声明了 average 但没有初始化它。为此,它有一个在代码执行之前无法得知的值。当您将 value[i]
与 average
添加时,average
的值就在其中。为此,您得到了错误的输出。您只需添加所有 value[i]
。所以用 0.
初始化 average
矢量索引是基于 0 的。因此插入向量的第 n 个元素将在第 [n-1] 个位置找到。
我有这个程序,它询问用户用户将输入多少个值,询问这些值并将它们放入向量中。然后我需要计算平均值和标准差。 我有平均数,但看起来有些地方不对劲,我得到了错误的平均数。我不太确定如何开始标准偏差部分。
#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;
}
感谢任何帮助。
使用
double average = 0;
代替double average;
并在循环内使用
values[i-1]
而不是values[i]
。
为什么?
你声明了 average 但没有初始化它。为此,它有一个在代码执行之前无法得知的值。当您将
value[i]
与average
添加时,average
的值就在其中。为此,您得到了错误的输出。您只需添加所有value[i]
。所以用 0. 初始化 矢量索引是基于 0 的。因此插入向量的第 n 个元素将在第 [n-1] 个位置找到。
average