用c语言定义一个函数,计算平均数,方差,标准差.(请用指针完成)
1个回答

//计算平均数,方差,标准差.

#include

#include

#include

#include

#include

#define N 100

void TongJi(double a[],int n,double *aver,double *vari,double *stdDev){

//对长度为n的数组a进行统计,统计其平均值aver、方差vari、标准差stdDev

int i;

double *p,aver2;

*aver=0.0;

for(p=a+(n-1);p>=a;--p){

*aver+=*p;//累加各元素

aver2+=(*p)*(*p);//累加各元素的平方

}

*aver/=n;//求平均值

aver2/=n;//求平方的平均值

*vari=aver2-(*aver)*(*aver);//计算方差

*stdDev=sqrt(*vari);//计算标准差

}

int main(){

double a[N],pj,fc,bzc;

int i;

srand(time(NULL));

for(i=0;i

a[i]=rand()/(RAND_MAX+1.0); //产生随机小数[0,1)

printf("%lg ",a[i]);

}

TongJi(a,N,&pj,&fc,&bzc);

printf("nPingJun=%lg, FangCha=%lg, BiaoZhunCha=%lg",pj,fc,bzc);

printf("nFinished!n");

getch();

return 0;

}顺便做了一个测试:产生100个随机小数,得到其平均值大概在0.5左右,方差在0.08左右,标准差在0.28左右.说明系统自带的随机数发生器还是比较均匀的.