题目意思:求N个给定整数的均方差。
求平均值需要先转化为double类型,如果没转化会损失精度,造成错误。
代码如下:
#include<iostream>
#include<cmath>
using namespace std;
int n;
int a[10005];
int main()
{
cin>>n;
int sum=0;
for(int i=1;i<=n;i++)
{
cin>>a[i];
sum+=a[i];
}
double avg=(double)sum/n;
double sumSquare=0.0;
for(int i=1;i<=n;i++)
{
sumSquare+=(a[i]-avg)*(a[i]-avg);
}
printf("%.5f\n",sqrt(sumSquare*1.0/n));
return 0;
}