草明&草明 2019-03-25 05:33 采纳率: 66.7%
浏览 3480
已采纳

用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条回答 默认 最新

  • wusuobuwei_1 2019-03-25 09:55
    关注

    函数float ave_01(float a[100]):int i,j;请将j初始化后再使用,比如 int j = 0; 该函数里面的return ave;这句以后的代码都不会执行。以上

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已采纳回答 11月1日

悬赏问题

  • ¥15 服务器安装php5.6版本
  • ¥15 我想用51单片机和数码管做一个从0开始的计数表 我写了一串代码 但是放到单片机里面数码管只闪烁一下然后熄灭
  • ¥20 系统工程中,状态空间模型中状态方程的应用。请猛男来完整讲一下下面所有问题
  • ¥15 我想在WPF的Model Code中获取ViewModel Code中的一个参数
  • ¥15 arcgis处理土地利用道路 建筑 林地分类
  • ¥20 使用visual studio 工具用C++语音,调用openslsx库读取excel文件的sheet问题
  • ¥100 寻会做云闪付tn转h5支付链接的技术
  • ¥15 DockerSwarm跨节点无法访问问题
  • ¥15 使用dify通过OpenAI 的API keys添加OpenAI模型时报了“Connection Error”错误
  • ¥40 想找个软件,但我不知道怎么找到它,我甚至不知道有没有