- 1、本文档共80页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.7数组作为函数参数 7.7.1数组元素作函数实参 7.7.2数组名作函数参数 7.7.1数组元素作函数实参 例7.9 输入10个数,要求输出其中值最大的元素和该数是第几个数。 7.7.1数组元素作函数实参 解题思路: 定义数组a,用来存放10个数 设计函数max,用来求两个数中的大者 在主函数中定义变量m,初值为a[0],每次调用max函数后的返回值存放在m中 用“打擂台”算法,依次将数组元素a[1]到a[9]与m比较,最后得到的m值就是10个数中的最大者 #include stdio.h int main() { int max(int x,int y); int a[10],m,n,i; printf(“10 integer numbers:\n); for(i=0;i10;i++) scanf(%d,a[i]); printf(\n); for(i=1,m=a[0],n=0;i10;i++) { if (max(m,a[i])m) { m=max(m,a[i]); n=i; } } printf(“largest number is %d\n,m); printf(“%dth number.\n“,n+1); } int max(int x,int y) { return(xy?x:y); } 7.7.2数组名作函数参数 除了可以用数组元素作为函数参数外,还可以用数组名作函数参数(包括实参和形参) 用数组元素作实参时,向形参变量传递的是数组元素的值 用数组名作函数实参时,向形参传递的是数组首元素的地址 7.7.2数组名作函数参数 例7.10 有一个一维数组score,内放10个学生成绩,求平均成绩。 解题思路: 用函数average求平均成绩,用数组名作为函数实参,形参也用数组名 在average函数中引用各数组元素,求平均成绩并返回main函数 #include stdio.h int main() { float average(float array[10]); float score[10],aver; int i; printf(input 10 scores:\n); for(i=0;i10;i++) scanf(%f,score[i]); printf(\n); aver=average(score); printf(%5.2f\n,aver); return 0; } 定义实参数组 float average(float array[10]) { int i; float aver,sum=array[0]; for(i=1;i10;i++) sum=sum+array[i]; aver=sum/10; return(aver); } 定义形参数组 相当于score[0] 相当于score[i] 扩展:有两个班级,分别有35名和30名学生,调用一个average函数,分别求这两个班的学生的平均成绩。 解题思路: 需要解决怎样用同一个函数求两个不同长度的数组的平均值的问题 定义average函数时不指定数组的长度,在形参表中增加一个整型变量i 从主函数把数组实际长度从实参传递给形参i 这个i用来在average函数中控制循环的次数 #include stdio.h int main() { float average(float array[ ],int n); float score1[5]={98.5,97,91.5,60,55}; float score2[10]={67.5,89.5,99,69.5, 77,89.5,76.5,54,60,99.5}; printf(“%6.2f\n”,average(score1,5)); printf(“%6.2f\n”,average(score2,10)); return 0; } float average(float array[ ],int n) { int i; float aver,sum=array[0]; for(i=1;in;i++) sum=sum+array[i]; aver=sum/n; return(aver); } 调用形式为average(score1,5)时 相当于s
您可能关注的文档
- 第十三章 解释水平理论_从时间距离到心理距离.pdf
- 启发式最短路径算法研究_附件.doc
- 中国鞋子演变.ppt
- 生态系统服务研究动态和地理学研究范式.pdf
- 第七章 VLAN、VTP与VLAN间的路由.ppt
- 操作系统原理-第七节 存储管理.ppt
- 第10讲 处理器管理资料.ppt
- 操作系统13-14--离散存储(副本).ppt
- 2014届中考历史复习方案课件:第23课时 第二次世界大战和战后主要资本主义国家的发展变化.ppt
- 苏教版高二数学算法概念.ppt
- 抢分秘籍10 带电粒子电场中的直线运动、偏转和交变电电场中的应用(三大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍11 带电粒子在组合场、叠加场中的运动(五大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍11 带电粒子在组合场、叠加场中的运动(五大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍12 电磁感应中的电路与图像问题(二大题型)(解析版) -2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍12 电磁感应中的电路与图像问题(二大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍14 热力学定律与气体实验定律综合应用(五大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍13 电磁感应中的动力学、能量和动量问题(三大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍14 热力学定律与气体实验定律综合应用(五大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍16 振动图像与波动图像的综合应用(三大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍15 光的折射、全反射的综合应用(二大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
文档评论(0)