- 1、本文档共313页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
程序运行结果如下:
Inputarraya:1357986420↙
Inputarrayb:5389-1-35604↙
a[i]b[i]4times
a[i]=b[i]1times
a[i]b[i]5times
Arrayaissmallerthenarrayb2.数组名作为函数的形参和实参
可以用数组名作为函数参数,此时实参与形参都应当用数组名。
【例2.23】有一个一维数组score,内放10个学生成绩,求平均成绩。
程序如下:
floataverage(floatarray[10])
{?inti;
floataver,sum=0;
for(i=0;i10;i++)sum=sum+array[i];
aver=sum/10;
return(aver);
}
#includestdio.h
voidmain()
{?floatscore[10],aver;
inti;
printf(Input10scores:);
for(i=0;i10;i++)
scanf(%f,score[i]);aver=average(score);
printf(Averagescoreis%6.2f\n,aver);
}
程序运行结果如下:
Input10scores:100567898.576879967.57597↙
Averagescoreis83.40说明:
(1)用数组名作函数参数,应该在主调函数和被调用函数中分别定义数组。如例2.23中array是形参数组名,score是实参数组名,分别在其所在函数中定义,不能只在一方定义。
(2)实参数组与形参数组类型应一致,如例2.23中都为float类型。如果类型不一致,结果将出错。
(3)实参数组和形参数组大小可以一致,也可以不一致。C编译系统对形参数组大小不做语法检查,只是将实参数组的首地址传递给形参数组。(4)形参数组也可以不指定大小,在定义形参数组时在数组名后面跟一对空的方括号。为了在被调用函数中处理数组元素的需要,可以另设一个参数传递数组元素的个数,如下例所示。
【例2.24】编写一个函数,求学生的平均成绩。
程序如下:
#includestdio.h
floataverage(floatarray[],intn)
{?inti;floataver,sum=0;
for(i=0;in;i++)
sum=sum+array[i];
aver=sum/n;
return(aver);
}
voidmain()
{?floatscore_1[5]={98.5,97,91.5,60,55};
floatscore_2[10]={67.5,89.5,99,69.5,77,89.5,76.5,54,60,99.5};printf(TheaverageofclassAis%6.2f\n,average(score_1,5));
printf(TheaverageofclassBis%6.2f\n,average(score_2,10));
}
程序运行结果如下:
TheaverageofclassAis80.40
TheaverageofclassBis78.20
从上例可以看出,两次调用average()函数时数组大小是不同的,在调用时用一个实参传递数组大小(传给形参n),以便在average()函数中对所有元素都访问到。(5)用数组名作函数实参时,不是把实参数组元素的值传递给形参数组元素,而是把实参数组的起始地址传递给形参数组,这样两个数组就共占同一段内存单元,如图2-24所示。假如例2.24中main()函数的实参数组score的起始地址为1000,调用average()函数时,将其起始地址1000传递给形参数组array,使得array的起始地址也成为1000。这样,score和array数组的起始地址相同,占同一段内存单元,score[0]与array[0]占同一个单元,score[1]与array[1]占同一个单元,依次类推。可以看出,形参数组
您可能关注的文档
- 《高频电子线路》课件1第5章.ppt
- 《DSP处理器原理与应用》课件第3章.ppt
- 《机械制图》课件 第5章.ppt
- 《机械制图》课件1第9章.ppt
- 《机械基础》课件第3章 构件的内力和强度计算.pptx
- 《 基于Altium Designer的电路板设计 第7章 电路板设计规范.ppt
- 《高级程序设计技术》课件第1章.ppt
- 《C语言程序设计项目化教程》课件第3章.ppt
- 《机械制图》课件1第2章.ppt
- 《编译原理教程》课件第十一章.ppt
- 2025年贵州工业职业技术学院高职单招高职单招英语2016-2024历年频考点试题含答案解析.docx
- 2025年西昌民族幼儿师范高等专科学校高职单招职业适应性测试近5年常考版参考题库含答案解析.docx
- 2025年西藏警官高等专科学校高职单招语文2018-2024历年参考题库频考点含答案解析.docx
- 2025年贵州工商职业学院高职单招职业技能测试近5年常考版参考题库含答案解析.docx
- 2025年贵州工商职业学院高职单招职业适应性测试近5年常考版参考题库含答案解析.docx
- 2025年贵州农业职业学院高职单招数学历年(2016-2024)频考点试题含答案解析.docx
- 2025年贵州工商职业学院高职单招高职单招英语2016-2024历年频考点试题含答案解析.docx
- 2025年贵州工商职业学院高职单招语文2018-2024历年参考题库频考点含答案解析.docx
- 2025年许昌职业技术学院高职单招数学历年(2016-2024)频考点试题含答案解析.docx
- 2025年许昌职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析.docx
文档评论(0)