数组实参很有意思的启发

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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值