c语言ch函数的嵌套调用和递归调用x

c语言ch函数的嵌套调用和递归调用x

ID:39963241

大小:239.13 KB

页数:32页

时间:2019-07-16

c语言ch函数的嵌套调用和递归调用x_第1页
c语言ch函数的嵌套调用和递归调用x_第2页
c语言ch函数的嵌套调用和递归调用x_第3页
c语言ch函数的嵌套调用和递归调用x_第4页
c语言ch函数的嵌套调用和递归调用x_第5页
资源描述:

《c语言ch函数的嵌套调用和递归调用x》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、2021/8/41上一节我们学到了函数的定义形参函数的声明函数的调用实参函数的调用过程局部变量(包括形参)何时分配内容、何时释放内存何时实参赋形参2021/8/42第7章用函数实现模块化程序设计7.1为什么要用函数7.2怎样定义函数7.3调用函数7.4对被调用函数的声明和函数原型7.5函数的嵌套调用7.6函数的递归调用7.7数组作为函数参数7.8局部变量和全局变量7.9变量的存储方式和生存期7.10关于变量的声明和定义7.11内部函数和外部函数2021/8/43函数的嵌套调用nestedfunction函数的嵌套调用:调用一个函数的过程中,又可以调用另一个函数注意:C语言的函数

2、定义是互相平行、独立的,即函数不能嵌套定义2021/8/44嵌套调用的执行过程main函数①调用a函数⑨结束a函数③调用b函数⑦②⑧b函数⑤④⑥2021/8/45例:设计一个常用圆形体体积计算器,采用命令方式输入1、2、3,分别选择计算球体、圆柱体、圆锥体的体积,并输入计算所需相应参数。分析:输入1、2、3选择计算3种体积,其他输入结束计算设计一个控制函数cal(),经它辨别圆形体的类型再调用计算球体、圆柱体、圆锥体体积的函数设计单独的函数计算不同圆形体的体积2021/8/463层结构,5个函数降低程序的构思、编写、调试的复杂度可读性好程序结构main()cal()vol_ba

3、ll()vol_cylind()vol_cone()程序结构intmain(void){……cal(sel);}voidcal(intsel){……vol_ball();vol_cylind();vol_cone();}doublevol_ball(){……}doublevol_cylind(){……}doublevol_cone(){……}main()cal()vol_ball()vol_cylind()vol_cone()源程序#definePI3.141592654voidcal(intsel);doublevol_ball(void);doublevol_cylind(

4、void);doublevol_cone(void);intmain(void){intsel;while(1){printf("1-计算球体体积");printf("2-计算圆柱体积");printf("3-计算圆锥体积");printf("其他-退出程序运行");printf("请输入计算命令:");scanf("%d",&sel);if(sel<1

5、

6、sel>3)//输入非1~3,循环结束break;cal(sel);//输入1~3,调用cal()}return0;}/*常用圆形体体积计算器的主控函数*/voidcal(intsel){switch(sel

7、){case1:printf("球体积为:%.2f",vol_ball());break;case2:printf("圆柱体积为:%.2f",vol_cylind());break;case3:printf("圆锥体积为:%.2f",vol_cone());break;}}2021/8/410//计算球体体积V=4/3*PI*r*r*rdoublevol_ball(){doubler;printf("请输入球的半径:");scanf("%lf",&r);return(4.0/3.0*PI*r*r*r);}//计算圆柱体积V=PI*r*r*hdoublevol_cyl

8、ind(){doubler,h;printf("请输入圆柱的底圆半径和高:");scanf("%lf%lf",&r,&h);return(PI*r*r*h);}//计算圆锥体积V=h/3*PI*r*rdoublevol_cone(){doubler,h;printf("请输入圆锥的底圆半径和高:");scanf("%lf%lf",&r,&h);return(PI*r*r*h/3.0);}2021/8/411递归(Recursion)函数直接或间接调用自己为递归unsignedintfact(unsignedintn) {if(0==n)return1;elsereturnn*f

9、act(n-1); }2021/8/4122021/8/413递归的实现递归(recursion)的定义调用自身的程序递归的基本思想问题分解:把一个不能或不好解决的大问题转化为一个或几个小问题,再把这些小问题进一步分解成更小的小问题,直至每个小问题都可以直接解决。德罗斯特效应—递归的视觉效应2021/8/414递归应用递归算法一般用于解决三类问题:(1)数据的定义是按递归定义的。求阶乘:n!=1×2×3×……×n或n!=n×(n-1)!Fibonacci函数(效率极其低下)Fact(n)=1

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

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

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