一个简单的C语言函数调用

来源:百度知道 编辑:UC知道 时间:2024/06/07 18:48:34
#include <stdio.h>
float average(int stu[], int n);
void main()
{
int score[10], i;
float av;
printf("输入10个学生的成绩:\n");
for( i=0; i<10; i++ )
scanf("%d", &score[i]);
av=average(score,10);
××××问题在这里。我想问下10,是干嘛用的?我不理解。××××
printf("平均成绩为:%.2f", av);
}
float average(int stu[], int n)
{
int i;
float av,total;
total = 0;
for( i=0; i<n; i++ )
total += stu[i];
av = total/n;
return av;
}
小弟在这里找下C语言懂的人。。教我下。谢谢QQ262033847

你的average函数的原型是:
float average(int stu[], int n);
有两个参数,调用的时候自然要有两个了。
第一个是成绩的数组,对吧,
第二个n(也就是你后面的10了),是要求平均的元素个素,不知道的话,求平均数怎么知道除以几呢?

因为你传进去的score是整个数组。而这里的10.。表示这个数组有十个数。也就是下面n的实参——实际值。

带到自定义函数里的时候。10就是n,也就是数组的个数。。也可以理解成score只是传递进去初始的地址单位。但是是需要知道这个数组有几个数。。。。所以需要一个n.

代码中10个学生的成绩存在数组score[10]中

float average(int stu[], int n),说明average是一个返回值为float的子函数,(你就当average(score,10)是一个运算过程)。在这个子函数中局部变量为整型的数组stu[]与整型的n。在主函数中即int main()中
av=average(score,10);//表示调用函数average()其中stu[]的值就是score[]
而n的值是10(10代表着score中有10个元素)。

10表示总人数
程序中经常会出现一些变量没有明确的意义,因为有时为了方便人家会把一个变量在不同阶段反复使用,那样那个变量在不同阶段就有不同的意义了.

因为函数在传递数组的时候只能将数组的首地址传进去,而不能将数组的大小传进去,所以传递的时候应再加一个参数,传递数组的大小。

10是实参,也就是你调用函数的时候所传进去的参数,因为你的数字长度是10,所以写10