[英]Standard Deviation c++ Formula advice
我有这个作业,我将在其中显示提示:
编写一个程序,从用户那里读入一组测试分数数据。 (测试分数应以十进制形式输入以表示百分比等级)。 一旦用户完成输入测试分数(输入 -1 将表示输入结束),打印出输入的测试数量、测试的平均值和标准偏差。 使用以下公式(Welford's method)计算标准偏差: (Standard Deviaton Formula)
您可以通过在处理输入值时跟踪计数(测试次数)、总和和平方和来计算此数量。 注意:虽然有其他方法可以计算标准偏差,但请使用此方法。 使用此方法是因为它只需要一次数据传递。 不要使用数组或向量。
现在下面的代码是我到目前为止所拥有的。 在终端中,我得到了错误的平均值和标准数字。 偏差输出(Terminal Output) 。 我的数学有问题吗? 任何帮助表示赞赏。 编辑:这是我正在使用的数据以及我应该得到的预期结果:
1. 67.8
2. 95.6
3. 89.5
4. 76.7
5. 71.3
6. 83.2
7. 90.6
8. 56.1
9. 98.6
10. 85.2
结果:
Number of Test Scores: 10
Average : 81.46
Std. Deviation: 13.39
代码
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double sum = 0;
double sumSq = 0;
double grade = 0;
int numtests = 0;
cout << "Enter the test scores. Once finished, enter -1 to end input.\n";
cin >> grade;
while (grade != -1)
{
cin >> grade;
sum = sum + grade;
sumSq = sumSq + pow(grade, 2);
numtests++;
}
double average = (sum / numtests);
double std = (sumSq - numtests * pow(average, 2) / (numtests - 1));
cout << "The number of scores: " << numtests << "\n";
cout << "Average: " << average << "\n";
cout << "Std. Deviation: " << std << "\n";
return 0;
}
您已经编写了函数,因此“-1”是计算的一部分,这不是您想要的。 我可以为你修复它,但我认为你可以从这个提示中得到它。 现在我再看一遍,第一个数字不是您计算的一部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.