//C语言数组名当作函数实际参数
//有两个班的学生,分别是10个人和5个人,分别求这两个班的平均分
#include<stdio.h>
void initArry(int arry[],int len)//输入初始化
{
int i;
for (i=0;i<len;i++){
printf ("请输入%d个学生的成绩:",i+1);
scanf ("%d",&arry[i]);
}
puts ("done!");
}
void printArry(int arry[],int len)//输出数据
{
int i;
printf ("总人数是%d个\n",len);
for (i=0;i<len;i++){
printf ("%d ",arry[i]);
}
puts ("done!");
}
float getAverage(int arry[],int len)//计算平均分
{
int i;
int sum=0;//总分变量,初始化为0
float aver;
for (i=0;i<len;i++){
sum=sum+arry[i];//==sum+=arry[i];可互替
}
aver=(float)sum/len;
return aver;
}
int main()
{
int class1[10];
int class2[5];
float averofclass1;
float averofclass2;
int lenOfclass1=sizeof(class1)/sizeof(class1[0]);
int lenOfclass2=sizeof(class2)/sizeof(class2[0]);
initArry(class1,lenOfclass1);
initArry(class2,lenOfclass2);
printArry(class1,lenOfclass1);
printArry(class2,lenOfclass2);
averofclass1=getAverage(class1,lenOfclass1);
averofclass2=getAverage(class2,lenOfclass2);
printf ("一班的平均成绩为%.2f",averofclass1);
printf ("二班的平均成绩为%.2f",averofclass2);
return 0;
}
传参实参为数组时,承接的形参中要定义数组形式