C语言方差和标准差公式,C语言的一个方差问题

#include

#include

float fangcha(float *p,int u);

main()

{

float fangcha2;

int k=0;

int n;

float ve[20];

float *p=ve;

printf("说明\n");

for(n=0; n<20; n++) //当终端输入100时终止循环,统计出有多少个数

{

scanf("%f",(p+n)); //这里减1,没有意义,当n=0时 超出分配的内存,导致访问错误,主要错误就在这里

if (*(p+n)!=100) //这里改成这样,为了排出把100也计算在内

{

k++;

}

else

{

break;

}

}

fangcha2=fangcha(ve,k); //这里直接传递VE即可,无须再为p负值

printf("%f",fangcha2);

system("pause");

return 0;

}

float fangcha(float *p,int u)

{

int b;

float pingjun=0,fang=0,*pp=p;

for(b=0;b

pingjun+=*(p+b); //简化代码

p = pp; //注意书写格式,需要让人看得明白。

pingjun=pingjun/u;

for(b=0;b

fang=fang+(*(p+b)-pingjun)*(*(p+b)-pingjun);

fang=fang/u;

return fang;

}

你可能感兴趣的:(C语言方差和标准差公式)