c程序设计教程与实验指导杨国兴函数

c程序设计教程与实验指导杨国兴函数

ID:26884471

大小:250.00 KB

页数:29页

时间:2018-11-29

c程序设计教程与实验指导杨国兴函数_第1页
c程序设计教程与实验指导杨国兴函数_第2页
c程序设计教程与实验指导杨国兴函数_第3页
c程序设计教程与实验指导杨国兴函数_第4页
c程序设计教程与实验指导杨国兴函数_第5页
资源描述:

《c程序设计教程与实验指导杨国兴函数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C++语言程序设计杨国兴张东玲彭涛中国水利水电出版社第3章函数3.1函数的递归调用3.2内联函数3.3函数重载3.4带默认参数值的函数3.5变量的存储类别3.6程序实例3.1函数的递归调用一个函数在它的函数体内,直接或间接地调用它自身,称为递归调用。这种函数称为递归函数。直接或间接调用函数自身的情况如图:第3章函数f函数调用f函数f1函数调用f2函数f2函数调用f1函数直接调用间接调用这两种递归调用都是无中止地调用自身,显然是不正确的。为了防止递归调用无终止地进行,必须在函数内有终止递归调用的手段。例3.1用递归的方法求n!分析:计算n!的公式为:1n=1或0y=n*(n-1)!n>1可以将

2、求n!转化为求(n-1)!,再继续转化为求(n-2)!,到1时应停止递归#includeusingnamespacestd;longpower(intn);voidmain(){intn;longy;cout<<"inputaintegernumber:";cin>>n;y=power(n);cout<1)f=n*power(n-1);elsef=1;returnf;}例3.1的递归过程分析第3章函数例3.2Hanoi塔问题有三根针A、B、C,A针上有n个盘子,盘子大小

3、不等,大的在下,小的在上,如图所示。要求将这n个盘子从A针移到C针,在移动过程中可以借助B针,每次只能移动一个盘子,并且在移动过程中三根针上的盘子都保持大盘在下,小盘在上。分析:将n个盘子从A针移到C针可以分解为以下三个步骤:(1)将A针上的n-1个盘子借助C针移到B针上;(2)将A针上剩下的一个盘子移到C针上;(3)将B针上的n-1个盘子借助A针移到C针上。第3章函数ABCn-1个盘子的Hanoi问题例3.2Hanoi塔问题源程序#includeusingnamespacestd;voidMove(charx, chary);voidHanoi(intn,charone

4、,chartwo,charthree);voidmain(){intn;cout<<"请输入盘子数:";cin>>n;cout<"<

5、hree);else{Hanoi(n-1,one,three,two);Move(one,three);Hanoi(n-1,two,one,three);}}第3章函数程序运行结果:ACABCBACBABCAC返回运行演示3.2内联函数内联函数与一般函数的区别在于它不是在调用时发生控制转移,而是在编译时将被调函数体嵌入到每一个函数调用处,节省了参数传递、控制转移等开销。对于一些规模较小、频繁调用的函数可声明为内联函数,能提高程序运行效率。内联函数的定义:inline类型说明符函数名(参数及类型表){函数体}注意:只有简单的函数才能成为内联函数,如函数体中不能有循环语句和swit

6、ch语句等。内联函数的定义必须出现在内联函数第一次被调用之前。第3章函数例3.3使用内联函数#includeusingnamespacestd;inlineintAdd(inta,intb){intx;x=a+b;returnx;}第3章函数程序运行结果:10+20=3010+50=6050+50=100返回voidmain(){inta,b,c;a=10;b=20;c=Add(a,b);cout<

7、+50"<<"="<

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

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

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