直接使用公式D(x)=E(x2)-E2(x)即可
#include<stdio.h>
#include<math.h>
int main()
{
int n;
double m,sum=0,sum2=0;
scanf("%d",&n);
for(int i=0;i<n;++i){
scanf("%lf",&m);
sum+=m;
sum2+=m*m;
}
printf("%.6lf",sum2-n*pow(sum/n,2));
}
代码如下:如有帮助,请帮忙采纳一下,谢谢。
代码:
#include<stdio.h>
#include<math.h>
int main()
{
int n,i;
scanf("%d",&n);
double x,sum=0,fangcha=0,ave=0;//要被叠加的量记得最初要赋值0!
for(i=1;i<=n;i++)
{
scanf("%lf",&x);//double型变量用%lf输入
sum+=x;
fangcha+=pow(x,2);
}
ave=sum/n;
fangcha+=n*pow(ave,2);
fangcha-=2*sum*ave;
printf("%f\n",fangcha);
return 0;
}
输入的数据肯定先要存下来,不用数组,你们还学了啥?有特别的指定吗?