c语言 纠错,希望 写出错误点,并改正。谢谢了!

、以下程序中,main函数通过调用fun()函数统计整数序列中的负数的个数以及平均值。本题约定平均值由函数返回,负数的个数由参数返回。程序有若干错误,请先阅读程序,找出其... 、以下程序中,main函数通过调用fun()函数统计整数序列中的负数的个数以及平均值。本题约定平均值由函数返回,负数的个数由参数返回。程序有若干错误,请先阅读程序,找出其中的错误行,并写出出错的原因,最后上机调试该程序验证自己的预测。
#1 double aver(int a[], int n, int *p)
#2 { int i,sum=0 ;
#3 *p=0 ;
#4 for(i=0;i<n;i++)
#5 { sum=sum+a[i] ;
#6 if(a[i]<0) *p++;
#7 }
#8 return sum/n;
#9 }
#10 #include "stdio.h"
#11 main()
#12 { int count,x[]={0,12,33,-9,-5,27,80,0,54,63};
#13 double av;
#14 av=aver(x,10,count);
#15 printf("count: %d\naverage: %.2f\n",count,av);
#16 }
详细的改错过程,说出错误点,改正错误点,就好,再加分
展开
 我来答
cyxqyh
2012-05-19
知道答主
回答量:19
采纳率:0%
帮助的人:5.5万
展开全部
#include "stdio.h"
int count=0; //负数的个数由参数返回,因此以全局变量定义
int main()
{
double aver(int a[], int n);//定义很重要,你忘记了定义
int x[]={0,12,33,-9,-5,27,80,0,54,63};
double av;
av=aver(x,10);
printf("count: %d\naverage: %.2f\n",count,av);
return 0;
}
double aver(int a[], int n)//没必要用*p++
{
int i,sum=0 ;
for(i=0;i<n;i++)
{
sum=sum+a[i] ;
if(a[i]<0)
count++;
}
return sum*1.0/n;//最好用*1.0,这样输出的是浮点型
}
满意请给分啊~~亲
追问
这是老师出的改错题,
追答
double aver(int a[], int n, int *p)
不能定义一个数组+两个int型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rssg888
2012-05-19 · TA获得超过1032个赞
知道小有建树答主
回答量:330
采纳率:0%
帮助的人:365万
展开全部
就这三行有问题
#6 if(a[i]<0) *p++; ++的优先级比*高 应该是(*p)++
#8 return sum/n; 要返回double 改成 return (double)sum/n;
#14 av=aver(x,10,count); 第三个参数是count的地址 ,改成av=aver(x,10,&count)

/* 三处错误已改好 */
#include "stdio.h"
double aver(int a[], int n, int *p)
{ int i,sum=0 ;
*p=0 ;
for(i=0;i<n;i++)
{ sum=sum+a[i] ;
if(a[i]<0) (*p)++; /* ++比*优先级高 */
}
return (double)sum/n; /*返回double*/
}
int main()
{ int count,x[]={0,12,33,-9,-5,27,80,0,54,63};
double av;
av=aver(x,10,&count); /*第三个参数是count的地址*/
printf("count: %d\naverage: %.2f\n",count,av);
}

运行结果:
count: 2
average: 25.50
请按任意键继续. . .
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lei7420042
2012-05-19 · 超过18用户采纳过TA的回答
知道答主
回答量:104
采纳率:0%
帮助的人:35万
展开全部
#include<stdio.h>
double aver(int a[], int n, int *p)
{ int i,sum=0 ,t=0;

for(i=0;i<n;i++)
{ sum=sum+a[i] ;
if(a[i]<0) t++;
}
*p=t;
return sum/n;
}
#include "stdio.h"
void main()
{ int count,x[10]={0,12,33,-9,-5,27,80,0,54,63};
double av;
av=aver(x,10,&count);
printf("count: %d\naverage: %.2f\n",count,av);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d580670
2012-05-19 · TA获得超过1983个赞
知道大有可为答主
回答量:2054
采纳率:82%
帮助的人:690万
展开全部
8return (double )sum/n;
14av=aver(x,10,&count);
追问
没了吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冬天是冬天
2012-05-19 · 超过12用户采纳过TA的回答
知道答主
回答量:74
采纳率:0%
帮助的人:22.2万
展开全部
多了去了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式