这是我第一次尝试编程。我希望能够输入可变数量的数据并输出平均值和标准差。我希望它尽可能简单,最好使用当前程序中已存在的命令。
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float num[46];
float amount_num;
cout<< "How many numbers do you want? (max 45)\n";
cin>> amount_num;
for (int counter =0; counter < amount_num; counter++)
{
cout<< "Enter value "<< counter<< ":"<< endl;
cin>> num[counter];
}
int total;
int average;
int latot;
int fun;
int n;
int taco;
int sd;
int bell;
for(int t= 0; t< amount_num; t++)
{
total = total + num[t];
}
average= total/amount_num;
for(int t= 0; t< amount_num; t++)
{
latot = num[t] - average;
bell = pow (latot,2);
fun = fun + bell;
}
n=amount_num-1;
taco=fun/n;
sd=sqrt(taco);
cout<< "Average: "<< average<< endl;
cout<< "SD: "<< sd<< endl;
}
答案 0 :(得分:0)
您的代码逻辑看起来是正确的。但是,您不应该使用整数变量。相反,使用浮点变量。使用整数变量会导致大量的整数除法,从而导致大量的数字截断错误。
例如,average= total/amount_num
total
如果amount_num
为128而average
为10,则num[t] - average
为12时应为12.8。在计算值偏差taco=fun/n
时会传播截断错误。
<line>:== ((<ISBN10>|<ISBN13>)([a-Z/0-9]*)) {1,4})
找到类似的整数除法问题。
使用浮点变量可以消除整数除法和这些中间数值误差。