- 1、本文档共424页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* C语言程序设计 * main( ) { … y=ff(5) … } ff(5 ) { … f=ff(4)*5; … return 120; } ff( 4) { … f=ff(3)*4; … return 24; } ff(3 ) { … f=ff(2)*3; … return 6; } ff(2) { … f=ff(1)*2; … return 2; } ff(1) { … f=1; … return 1; } 回推 递推 * C语言程序设计 * 7.5 数组作为函数参数 7.5.1 数组元素作为函数参数 【例7-9】数组元素做函数调用的实参。 #include stdio.h main( ) { int a[10],b,j; for(j=0;j10;j++) scanf(%d,a[j]); b=0; for(j=0;j10;j++) b=max(b, a[j]); printf(%d,b); } max(int x,int y) { return(xy?x:y); } 数组元素作为函数的实参,必须在主调函数内定义数组,并使其获得初值,通过函数调用将数组元素的值传递给对应的形参。此时数据传递与变量作函数的实参一样,是单向传递,即“值传递”方式。 * C语言程序设计 * 7.5.2 数组名作为函数的形参和实参 【例7-10】 一维数组score内存放5个学生的成绩,求平均成绩。 float average(float arr[5]) { int j; float aver,sum=0; for (j=0;j5;j++) sum=sum+arr[j]; aver=sum/5; return(aver); } main( ) { float score[5],aver; int j; printf(input 5 scores:\n); for (j=0;j5;j++) scanf(%f,score[j]); printf(\n); aver=average(score); printf(average score is: %5.2f,aver); } 运行结果如下: input 5 scores: 64 66 77.8 85↙ average score is:76.16 (1)数组名作为函数参数,应该在主调函数和被调函数中分别定义数组,如例7-10中arr是形参数组,score是实参数组,分别在其所在函数中定义。 (2)实参数组与形参数组类型应当相同,如果不同,将会出错。 (3)实参数组与形参数组大小可以相同也可以不同,C编译器对形参数组大小不做检查,只是将实参数组的首地址传递给形参数组。 (4)形参数组也可不指定大小,或者在被调函数中另设一个参数,来传递数组的大小。 * C语言程序设计 * 【例7-11】数组名作函数参数 float average(float arr[],int n) { int j; float aver,sum=0; for (j=0;jn;j++) sum=sum+arr[j]; aver=sum/n; return(aver); } main( ) { float score1[5]={80,66,70.5,82,90}; float score2[6]={68,72,70.5,88,68,90}; printf(the average of the first class is %6.2f\n, average(score1,5)); printf(the average of the second class is %6.2f\n, average(score2,6)); } 运行结果如下: the average of the first class is 77.70 the average of the second class is 76.08 * C语言程序设计 * 【例7-12】数组名作函数实参 #include stdio.h fun(char str[]) { strcpy(str,ASP.NET); } main( ) { char a[10]=Turbo C; printf(%s\n,a); fun(a); printf(%s,a); } 运行结果为: Turbo C ASP.NET * C语言程序设计 * 【例7-13】求一个3×4的矩阵中所有元素中的最大值。 max_value(int array[][4]) { int i,j,k, max; max=array[0][0]; for(i=0;i3;i++)
您可能关注的文档
- ASP动态网页设计全书电子教案教学课件汇总.ppt
- Authorware多媒体开发实训教程全书电子教案教学课件汇总.ppt
- C语言程序设计多媒体全书电子教案教学课件汇总.ppt
- C语言程序设计全书电子教案教学课件汇总.ppt
- C语言程序设计原理全书电子教案教学课件汇总.ppt
- Excel会计与财务管理—理论、方案暨模型(第二版)全书电子教案教学课件汇总.pptx
- Java程序设计案例全书电子教案教学课件汇总.ppt
- SQL Server 2000 2全书电子教案教学课件汇总.pptx
- SQL Server 2000 全书电子教案教学课件汇总.PPT
- 奥林匹克学(第三版)全书电子教案教学课件汇总.pptx
文档评论(0)