6.4函数的递归调用(课件)-《 C语言程序设计》同步教学(电子工业出版社)

2024-08-11
| 15页
| 89人阅读
| 18人下载
普通

内容正文:

第六章 程序的模块化--函数 1 CONTENTS 目录 01 02 函数的分类 函数的认知 03 自定义函数及其应用 04 函数的调用 CONTENTS 目录 05 06 函数的递归调用 函数的嵌套调用 07 数组作为函数的参数 08 变量的作用域 C语言 知识树 My First Template 函数的递归调用 C语言程序设计 5 C语言 C语言程序设计 函数的递归调用 本次任务 利用递归调用 计算n! My First Template C语言程序设计 函数的递归调用 C语言 包含命令 #include <stdio.h> 宏定义命令 #define PI 3.1415926 为了与一般C语句相区别,这些命令以符号“#”开头。 有这么一个古老的故事,从前有座山,山上有座庙,庙里有个老和尚和小和尚, 老和尚给小和尚讲故事,讲的是:从前有座山,山上有个庙,庙里有个老和尚和小和尚,老和尚给小和尚讲故事,讲的是。。。 My First Template C语言程序设计 函数的递归调用 C语言 包含命令 #include <stdio.h> 宏定义命令 #define PI 3.1415926 为了与一般C语句相区别,这些命令以符号“#”开头。 从前有座山,山上有座庙,庙里有个老和尚和3岁的小和尚, 老和尚给小和尚讲故事,讲的是:从前有座山,山上有个庙,庙里有个老和尚和2岁的小和尚,老和尚给小和尚讲故事,讲的是从前有座山,山上有个庙,庙里有个老和尚和1岁的小和尚。。。 My First Template C语言程序设计 函数的递归调用 C语言 函数递归调用的特点 在源程序中这些命令都放在函数之外,一般都放在源程序的前 面,我们称为预处理部分 C语言与其他语言的重要区别:就是C语言中可使用预处理命令 定义:在调用一个函数的过程中又直接或间接地调用该函数本身 注意:递归调用必须在满足一定条件时结束递归调用,否则无限地 递归调用将导致程序无法结束。 My First Template C语言程序设计 函数的递归调用 C语言 函数递归调用的特点 在源程序中这些命令都放在函数之外,一般都放在源程序的前 面,我们称为预处理部分 C语言与其他语言的重要区别:就是C语言中可使用预处理命令 一个问题成为递归必须具备的条件是: 1、后一部分与原始问题相似 2、后一部分是原始问题的简化 My First Template C语言程序设计 函数的递归调用 C语言 程序中的递归方式 直接递归调用 间接递归调用 My First Template C语言程序设计 函数的递归调用 C语言 直接递归调用 int f(int x) { int y,z; …… z=f(y); ……. return(2*z); } :函数直接调用本身 My First Template C语言程序设计 函数的递归调用 C语言 间接递归调用 int f1(int x) { int y,z; …… z=f2(y); ……. return(2*z); } int f2(int t) { int a,c; …… c=f1(a); ……. return(3+c); } 说明 在递归调用中,主调函数又是被调函数。执行递归函数将反复调用其自身,每调用一次就进入新的一层。 C语言对递归函数的自调用次数没有限制 必须有递归结束条件 :函数间接调用本身 My First Template C语言程序设计 函数的递归调用 C语言 任务:利用递归调用计算n! #include "stdio.h"//预处理 int fac(int n)//每次调用使用不同的参数 { int t; if((n==1)||(n==0))//当满足这个条件,返回1 t=1; else t=n*fac(n-1);//递归调用函数自身,求(n-1)! return t; } void main(){ int m,n; printf("Input a integer number:"); scanf(“%d”,&m); n=fac(m); printf(“%d!=%d ”,m,n);} 1 1 C语言程序设计 函数的递归调用 C语言 调用和返回的递归示意图(n=3) fac(1) = 1 调用 调用 返回 返回 fac(3) =3*fac(2) =3*2 =6 fac(2) =2*fac(1) =2*1 = 2 $$

资源预览图

6.4函数的递归调用(课件)-《 C语言程序设计》同步教学(电子工业出版社)
1
6.4函数的递归调用(课件)-《 C语言程序设计》同步教学(电子工业出版社)
2
6.4函数的递归调用(课件)-《 C语言程序设计》同步教学(电子工业出版社)
3
6.4函数的递归调用(课件)-《 C语言程序设计》同步教学(电子工业出版社)
4
6.4函数的递归调用(课件)-《 C语言程序设计》同步教学(电子工业出版社)
5
6.4函数的递归调用(课件)-《 C语言程序设计》同步教学(电子工业出版社)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。