题目意思:求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; }
时间: 2024-12-09 08:22:06