函数 6.5函数的嵌套调用与递归调用《C/C++语言程序设计基础》同步教学课件

2023-08-07
| 31页
| 219人阅读
| 1人下载
精品

内容正文:

第6章 函数 6.1函数概述 6.2函数的定义和说明 6.3函数的调用 6.4函数的参数 6.6变量的存储类型 6.5函数的嵌套调用与递归调用 大学C/C++语言程序设计程序设计 第6章 函数 6.5.1 函数的嵌套调用 函数的嵌套调用是指,在执行被调用函数时,被调用函数又调用了其它函数。 大学C/C++语言程序设计程序设计 第6章 函数 例: 求三个数中最大数和最小数的差值 思路: 1.设计max函数求3个数最大值,min函数求3个数最小值; 2.设计dif函数,调用max函数和min函数,求出最大数和最小数的差值 ; 3.设计main函数调用dif,输出差值。 大学C/C++语言程序设计程序设计 第6章 函数 int max(int x,int y,int z) //求x,y,z的最大值 { int r; r=x>y?x:y; // r为x、y的最大值; return(r>z?r:z); //返回r,z中的最大值; } int min(int x,int y,int z ) //求x,y,z的最小值 { int r; r=x<y?x:y; return(r<z?r:z); } int dif(int x,int y,int z) { return max(x,y,z)-min(x,y,z); /*嵌套调用*/} void main() { int a,b,c,d; scanf("%d%d%d",&a,&b,&c); d=dif(a,b,c); /*调用函数dif*/ printf("Max-Min=%d ",d); } 大学C/C++语言程序设计程序设计 第6章 函数 大学C/C++语言程序设计程序设计 第6章 函数 函数的嵌套调用注意事项: 1、当程序中有多个函数时,尽量被调函数定义在前,主调函数定义在后,以方便调用。 2、每次被调函数调用结束(遇到return或者函数的}),都是回到主调函数调用被调函数的位置。 大学C/C++语言程序设计程序设计 第6章 函数 6.5.2 函数的递归调用 函数的递归调用是嵌套调用的特殊形式。一个函数在它的函数体内,直接或间接地调用自己称为函数的递归调用。 大学C/C++语言程序设计程序设计 第6章 函数 6.5.2 函数的递归调用 一个正确的递归调用的函数必须满足以下条件: 1、一个问题转化成一个新问题,解题方法相似,只是所处理的对象的值有规律的递增或递减。 2、可以应用这个转换过程使问题得到解决。 3、必须有明确的结束递归的条件; 注意:一定要有递归出口(一个初值)。 大学C/C++语言程序设计程序设计 第6章 函数 (1) 直接递归 在fac函数运行过程中,又要调用fac函数。 fac(int n) /*f函数定义*/ { … t=fac(n-1)*n; /*直接调用它本身*/ … } 大学C/C++语言程序设计程序设计 第6章 函数 (2) 间接递归 大学C/C++语言程序设计程序设计 第6章 函数 分析问题2种方法:递推和递归 递推:从一个初值出发,按一定的规律推出下一步结果,以此类推,直到达到问题的结果为止。 一般通过循环结构实现,循环的终值是问题的结果。 大学C/C++语言程序设计程序设计 第6章 函数 0!=1 1!=0!×1 2!=1!×2 3!=2!×3 ……………….. n!=(n-1)!*n 其中,n!就是所求。 一般用循环实现 例: 求n的阶乘n! ….. s=1 ; scanf("%d",&n) ; for(i=1;i<=n;i++) s=s*i; ……….. 大学C/C++语言程序设计程序设计

资源预览图

函数 6.5函数的嵌套调用与递归调用《C/C++语言程序设计基础》同步教学课件
1
函数 6.5函数的嵌套调用与递归调用《C/C++语言程序设计基础》同步教学课件
2
函数 6.5函数的嵌套调用与递归调用《C/C++语言程序设计基础》同步教学课件
3
函数 6.5函数的嵌套调用与递归调用《C/C++语言程序设计基础》同步教学课件
4
函数 6.5函数的嵌套调用与递归调用《C/C++语言程序设计基础》同步教学课件
5
函数 6.5函数的嵌套调用与递归调用《C/C++语言程序设计基础》同步教学课件
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。