草明&草明
2019-03-25 05:33
采纳率: 50%
浏览 3.0k

用C语言实现求输入的一串数的平均值,方差和标准差(找错)

#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)这是运行后的结果,还是找不出错误
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

3条回答 默认 最新

  • weixin_39356793 2019-03-25 07:27

    “ s = FANG_01(ave, a, j); //在其他函数中调用,则应在外部声明
    printf("方差=%lf", s);

    t = sqrt(s); //求平方根的函数__
    printf("标准差=%lf", t);”
    写到main()方法里
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题