C语言程序设计(第三版)-第8章-函数1.ppt

C语言程序设计(第三版)-第8章-函数1.ppt

ID:56527459

大小:241.00 KB

页数:26页

时间:2020-06-27

C语言程序设计(第三版)-第8章-函数1.ppt_第1页
C语言程序设计(第三版)-第8章-函数1.ppt_第2页
C语言程序设计(第三版)-第8章-函数1.ppt_第3页
C语言程序设计(第三版)-第8章-函数1.ppt_第4页
C语言程序设计(第三版)-第8章-函数1.ppt_第5页
资源描述:

《C语言程序设计(第三版)-第8章-函数1.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、例8.7有5个人坐在一起,问第5个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第3个人,又说比第2个人大2岁。问第2个人,说比第1个人大2岁。最后问第1个人,他说是10岁。请问第5个人多大。age(5)=age(4)+2age(4)=age(3)+2age(3)=age(2)+2age(2)=age(1)+2age(1)=10可以用数学公式表述如下:age(n)=10(n=1)age(n-1)+2(n>1)可以用一个函数来描述上述递归过程:intage(intn)/*求年龄的递归函数*/{intc;/*c用作存放函数的返回值的变量*

2、/if(n==1)c=10;elsec=age(n-1)+2;return(c);}用一个主函数调用age函数,求得第5人的年龄。#includevoidmain(){printf(″%d″,age(5));}运行结果如下:18例8.8用递归方法求n!求n!也可以用递归方法,即5!等于4!×5,而4!=3!×4…1!=1。可用下面的递归公式表示:n!=1(n=0,1)n·(n-1)!(n>1)§8.7.2数组名作函数参数可以用数组名作函数参数,此时形参应当用数组名或用指针变量。例8.11有一个一维数组score,内放10个学生成绩,求平均成绩。#

3、includevoidmain(){floataverage(floatarray[10]);/*函数声明*/floatscore[10],aver;inti;printf(″input10scores:\n″);for(i=0;i<10;i++)scanf(″%f″,&score[i]);printf(″\n″);aver=average(score);printf(″averagescoreis%5.2f″,aver);}floataverage(floatarray[10]){inti;floataver,sum=array[0];fo

4、r(i=1;i<10;i++=)sum=sum+array[i];aver=sum/10;return(aver);}运行情况如下:input10scores:100567898.576879967.57597↙averagescoreis83.40例8.12形参数组不定义长度#includevoidmain(){floataverage(floatarray[],intn)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,5

5、4,60,99.5};printf(“theaverageofclassAis%6.2f\n”,average(score_1,5));printf(“theaverageofclassBis%6.2f\n”,average(score_2,10));}floataverage(floatarray[],intn){inti;floataver,sum=array[0];for(i=1;i<n;i++=sum=sum+array[i];aver=sum/n;return(aver);}运行结果如下:theaverageofclassAis80.40Theavera

6、geofclassBis78.20例8.13用选择法对数组中10个整数按由小到大排序。所谓选择法就是先将10个数中最小的数与a[0]对换;再将a[1]到a[9]中最小的数与a[1]对换……每比较一轮,找出一个未经排序的数中最小的一个。共比较9轮。a[0]a[1]a[2]a[3]a[4]36194未排序时的情况16394将5个数中最小的数1与a[0]对换13694将余下的4个数中最小的数3与a[1]对换13496将余下的3个数中最小的数4与a[2]对换13469将余下的2个数中最小的数6与a[3]对换,至此完成排序程序实例#includevoidm

7、ain(){voidsort(intarray[],intn);inta[10],i;printf(″enterthearray\n″);for(i=0;i<10;i++)scanf(″%d″,&a[i]);sort(a,10);printf(″thesortedarray∶\n″);for(i=0;i<10;i++)printf(″%d″,a[i]);printf(″\n″);}voidsort(intarray[],intn){inti,j,k,t;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(array[j]<arr

8、ay[k]

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。