程序问题,纠结了很久?
要算一组数据的平均数和方差,可是不知道为什么方差总是0...
代码如下:
#include <stdio.h>
float aver;
int main()
{
int str[10];
void input(int a[],int n);
double calculate(int a[],int n);
input(str,10);
printf("平均分是%f, 方差是%lf\n",aver,calculate(str,10));
return 0;
}
void input(int a[],int n)
{
int b;
for(b=0;b<=n-1;b++)
{
scanf("%d",&a[b]);
}
}
double calculate(int a[],int n)
{
double z,v=0;
int p,q,sum=0;
for(p=0;p<=n-1;p++)
{
sum+=a[p];
}
aver=sum/n;
for(q=0;q<=n-1;q++)
{
v+=a[q]*a[q]-aver*aver;
}
z=(1/n)*n;
return(z);
}
[解决办法]
你的方差公式都错啦
v+=(a[q]-aver)(a[q]-aver);
}
z=(1/n)*v;
[解决办法]
aver=sum/n;