C语言方差问题

来源:百度知道 编辑:UC知道 时间:2024/09/25 09:38:39
#include<stdio.h>
#include<stdlib.h>
main()
{
float fangcha(float *p,int u);
int k;
int n;
float ve[20]; float *p=ve;
printf("说明\n");

for(n=0;n<20&&*(p+n)!=100;n++) //当终端输入100时终止循环,统计出有多少个数
{
scanf("%f",(p+n));
k++;
}p=ve;
float fangcha2=fangcha(p,k);
printf("%f",fangcha2);
system("pause");
}

float fangcha(float *p,int u)
{
int b;
float pingjun=0,fang=0,*pp=p;
for(b=0;b<u;b++)
pingjun=pingjun+*(p+b);p=pp;
pingjun=pingjun/u;
for(b=0;b<u;b++)
fang=fang+(*(p+b)-pingjun)e2;
fang=fang/u;
return fang;
}

谁要真给出答案!正确的,我一

for(n=0;n<20&&*(p+n)!=100;n++)
for语句没掌握好就用最简单的用法就好了。 你这里n++了之后 p+n这个位置还没输入过呢就比较, 能比较出个什么结果啊

k++; k没初始化就++

然后 float fangcha2=fangcha(p,k); C语言变量声明要在函数开头,你这个编译过不了

(*(p+b)-pingjun)e2; e2 。。这语法是常量专用的, 而且也不是平方的意思。 总之想要平方就老老实实自己写吧 (*(p+b)-pingjun)*(*(p+b)-pingjun)