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 }
详细的改错过程,说出错误点,改正错误点,就好,再加分 展开
#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 }
详细的改错过程,说出错误点,改正错误点,就好,再加分 展开
展开全部
#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,这样输出的是浮点型
}
满意请给分啊~~亲
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型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就这三行有问题
#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
请按任意键继续. . .
#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
请按任意键继续. . .
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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);
}
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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
8return (double )sum/n;
14av=aver(x,10,&count);
14av=aver(x,10,&count);
追问
没了吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
多了去了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询