#include
#include
double FANG_01(float c,float a[100],int b); //函数声明
void main()
{
float a[100];
int i;
float ave;
float ave_01(float a[100]); //定义函数时括号里得写完整
printf("please input:\n");
for(i=0;i<=99;i++) //必须得有结束标志!否则得一直输入100个数字
{
scanf("%d",&a[i]);
if(a[i]==0)
break;
}
ave=ave_01(a);
printf("平均数=%f\n",ave);
}
float ave_01(float a[100]) //函数定义
{
int i,j;
float sum=0;
float ave=0;
double s;
double t;
for(i=0;i<=99;i++)
{
if(a[i]!='\0') //直接引用从主函数传递过得来的实参
{
sum+=a[i];
++j;
}
else break;
}
ave=sum/j;
return ave;
s=FANG_01(ave,a,j); //在其他函数中调用,则应在外部声明
printf("方差=%lf",s);
t=sqrt(s); //求平方根的函数__
printf("标准差=%lf",t);
}
double FANG_01(float ave,float a[100],int j) //函数定义
{
float b=0;
double s;
int i;
for(i=0;i<=100;i++)
{
if(a[i]!='\0')
b+=pow((a[i]-ave),2); //求平方的函数pow
else break;
}
s=b/j;
return s;
}
编译后没有错误,但是显示结果是-0.000000,其他啥也没有,单步调试调不出来(会报错Loaded 'ntdll.dll', no matching symbolic information found.)实在是不知道程序哪里错了o(╥﹏╥)o求各路大佬帮帮忙。。。。。
原题:假设有一堆数字(小于100个),需要对其做如下处理
1.求平均数
2.求标准差
3.求方差
可以用函数实现,也可以不用
**下面是更改后的代码:
#include
#include
double FANG_01(float c,float a[100],int b); //函数声明
void main()
{
float a[100];
int i,j;
float ave;
double s,t;
float ave_01(float a[100]); //定义函数时括号里得写完整
printf("please input:\n");
for(i=0;i<=99;i++) //必须得有结束标志!否则得一直输入100个数字
{
scanf("%f",&a[i]);
if(a[i]==0)
break;
++j;
}
ave=ave_01(a);
printf("平均数=%f\n",ave);
s=FANG_01(ave,a,j); //在其他函数中调用,则应在外部声明
printf("方差=%lf",s);
t=sqrt(s); //求平方根的函数
printf("标准差=%lf",t);
}
float ave_01(float a[100]) //函数定义
{
int i,j;
float sum=0;
float ave=0;
double s;
double t;
for(i=0;i<=99;i++)
{
if(a[i]!='\0') //直接引用从主函数传递过得来的实参
{
sum+=a[i];
++j;
}
else break;
}
ave=sum/j;
return ave;
}
double FANG_01(float ave,float a[100],int j) //函数定义
{
float b=0;
double s;
int i;
for(i=0;i<=100;i++)
{
if(a[i]!='\0')
b+=pow((a[i]-ave),2); //求平方的函数pow
else break;
}
s=b/j;
return s;
}```
**![图片说明](https://img-ask.csdn.net/upload/201903/25/1553485017_94211.png)这是运行后的结果,还是找不出错误