写一个average函数求平均数,想问错在哪
#include<stdio.h>void ave(int a);
void main()
{
int a={15,16,16,16,18,19,1,5,18,16};
int f;
f=ave(a);
printf("%d",f);
}
void ave(int a)
{
int temp;
int i;
temp=0;
for(i=0;i<10;i++)
{
temp=temp+a;
}
return temp;
}
如题,刚学,不太了解错误在哪?请求帮助 本帖最后由 lumber2388779 于 2017-3-28 08:55 编辑
你定义完a之后,使用a是指a数组中第11个元素,因为C语言是从0开始索引的,所以你后边使用数组的时候a是溢出的
定义函数参数为数组的时候可以不用指定长度,如void ave(int a[]),调用的时候是将整个数组传进去的,如ave(a)
这块你可能学完指针后再回来理解好一点 首先,定义的函数有问题啊
既然都要返回int了,怎么还定义void呢,void表示没有返回值
还有第七行的代码,传数组进函数,直接上数组的名字就可以了,像这样f=ave(a);
还有一个最重要的问题,你这个代码是求和的啊,不是求平均数啊
{:10_256:}{:10_256:}{:10_256:}
#include<stdio.h>
int ave(int a);
void main()
{
int a={15,16,16,16,18,19,1,5,18,16};
int f;
f=ave(a);//传数组变量首地址
printf("%d",f);
}
int ave(int a)//要返回整数变量不能用void
{
int temp;
int i;
temp=0;
for(i=0;i<10;i++)
{
temp=temp+a;//数组里面10个元素求和
}
return temp/10;//求和后要除以10才是平均数
}
页:
[1]