dataInfunc形参被调用时才有地址
形参实参中同样的名字 类型 值 地址 差异在于地址不同
void changeData(int data)//数值传递,操作的是不同的内存空间
void changeData(int data[ ])//操作的一定是相同的内存空间,数组名当做实参,到底传了什么(地址)
数组实战之计算不同班级学生的平均分
#include <stdio.h>
void initArry(int arry[],int len)
{ int i;
for(i=0;i<len;i++){
printf("请输入第%d个学生的成绩:\n",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("\n done \n");
}
float getAverage(int arry[],int len)
{
int i;
float aver=0.0;
int sum=0;//总分这个变量,一定手动初始化为0,默认值可能是个大数会影响结果
for(i=0;i<len;i++){
sum=sum+arry[i];
aver=(float)sum/len;
}
return aver;
}
int main()
{
int classOne[5];
int classTwo[10];
float averOfClassOne;
float averOfClassTwo;
int lenOfClassOne=sizeof(classOne)/sizeof(classOne[0]);
int lenOfClassTwo=sizeof(classTwo)/sizeof(classTwo[0]);
initArry(classOne,lenOfClassOne);//初始化数组
initArry(classTwo,lenOfClassTwo);//初始化数组 API application Interface接口
printArry(classOne,lenOfClassOne);
printArry(classTwo,lenOfClassTwo);
averOfClassOne=getAverage(classOne,lenOfClassOne);
averOfClassTwo=getAverage(classTwo,lenOfClassTwo);
printf("一班的平均分:%f\n",averOfClassOne);
printf("二班的平均分:%f\n",averOfClassTwo);
return 0;
}