图1是正确的代码,图2是我自己打的,图2的sum没有说明等于a[0],且q从1改成了0,编译以后也没问题,但是输出就会出错,如图3。为什么图1图2明明逻辑是一样的,编译也没报错,图2输出却出错了呢?
//图1原代码:
#include
int main()
{
float aver(float a[],int n);
int i;
float z1[5],z2[10];
printf("yi:\n");
for(i=0;i<=4;i++)
scanf("%f",&z1[i]);
printf("er:\n");
for(i=0;i<=9;i++)
scanf("%f",&z2[i]);
printf("%f\n",aver(z1,5));
printf("%f\n",aver(z2,10));
return 0;
}
float aver(float a[],int n)
{
int q;
float sum=a[0],k;
for(q=1;qreturn(k);
}
原题是:有两个小组,分别有5名学生和10名学生,请编程输入这些学生的成绩,并调用一个aver函数来求这两个小组的平均分。
把函数放在main函数前面。
sum要初始化为0,不然sum是一个意想不到的值。
http://t.csdn.cn/1u02u
这是我的另一个回答,问题与你类似,回答较为详细。
可以在main函数前面进行函数声明