函数的递归调用:一个函数在它的函数体内,直接或者间接地调用了他本身。

直接递归调用:函数直接调用自身。                              间接递归调用:函数间接调用自身。

如下图:                                                                          如下图:

防止递归无休止的进行下去,必须在函数内加条件判断,满足条件后就不再做递归调用,然后逐层返回。

通过一个例子来了解函数的递归调用

例:求第五个学生的年龄。

问第五个学生,说他比第四个学生大两岁

第四个学生说他比第三个学生大两岁

第三个学生说他比第二个学生大两岁

第二个学生说他比第一个学生大两岁

第一个说他10岁

解:

可以用如下方法求解

#include<stdio.h>
int Age (int n)
{int tmp;tmp=10;for(int i=1;i<n;i++){tmp+=2;}return tmp;
}
*/
//递归法
int Age(int n)
{int x;if(n==1)      //是递归停止的条件,当n=1时停止递归调用{x=10;}else{x=Age(n-1)+2;//调用自身的Age函数return x;}//return (Age(n-1)+2);
}
int main()
{printf("%d\n",Age(5));return 0;
}

可知:Age函数被调用了四次。在函数内部的调用,一个函数调用一个函数,直到n为1时为止,所以最后要加的值是8,然后返回最终的值。

函数的递归调用,就是函数本身调用自己。但是应用递归调用的时候,我们有必要设置一个条件,也就是if语句,目的是能够让这个函数停下来,否则程序将进入到死循环。

最适合使用递归法解决的问题

汉诺塔问题(Hanoi)    (见下一篇博客)

最不适合使用递归法解决的问题

斐波那契数列(Fibon)

C语言:函数的递归调用相关推荐

  1. C语言函数之递归调用

    提示:本文主要是掌握函数的递归 函数递归 前言 什么是递归 递归的两个必要条件 递归与迭代的关系 递归函数的优缺点 什么时候使用递归 总结 前言 函数是学习C语言的最重要知识点之一,要学好这门编程语言 ...

  2. 10月7日 c语言 函数的递归调用 有5个学生坐在一起,问第五个学生多少岁,比第四个大2岁……最后问第一个学生,他说是10岁

    #include<stdio.h> int main() { int age(int n); printf("NO.5: age:%d\n",age(5)); retu ...

  3. C语言函数递归调用实验报告,C语言函数的递归和调用实例分析

    一.基本内容: C语言中的函数可以递归调用,即:可以直接(简单递归)或间接(间接递归)地自己调自己. 要点: 1.C语言函数可以递归调用. 2.可以通过直接或间接两种方式调用.目前只讨论直接递归调用. ...

  4. c语言模板函数调用自定义函数调用,C语言函数的递归和调用

    C语言函数的递归和调用Tag内容描述: 1.计算机科学系陈垚,1,张福祥主编辽宁大学出版社,C语言程序设计,计算机科学系陈垚,2,我们先看这样一个例子:,说有一只调皮的小猴子,摘了一堆水果,第一天吃了 ...

  5. 在c语言中允许函数递归调用,c语言允许函数的递归调用吗

    c语言允许函数的递归调用吗 允许.C语言中的函数直接或间接调用自己的过程叫递归. 一.递归的两个必要条件 1.存在限制条件,当满足这个条件时,递归便不再继续. 2.每次递归调用之后越来越接近这个限制条 ...

  6. Python函数的递归调用

    一:递归的定义 函数的递归调用:是函数嵌套调用的一种特殊形式 具体是指: 在调用一个函数的过程中又直接或者间接地调用到本身 # 直接调用本身 def f1():print('是我是我还是我')f1() ...

  7. 函数的递归调用(专题)

    函数的递归调用(专题) 递归调用:函数的递归调用,就是函数在执行的时候自动调用自己! 功能:当我们把一个大问题按照某种解决方案细化为若干个小问题的时候,结果我们发现这些小问题的解决方案又和前面大问题的 ...

  8. mysql通过函数完成10的阶乘_请使用函数的递归调用编写求阶乘的函数,并计算1!+2!+3!+4!+5!...

    点击查看请使用函数的递归调用编写求阶乘的函数,并计算1!+2!+3!+4!+5!具体信息 答:include "stdio.h" int fac(int k) { if(k==1) ...

  9. C语言 函数声明和调用 - C语言零基础入门教程

    目录 一.简介 二.函数声明和定义 1.函数声明:不需要实现这个函数的功能 2.函数定义:必须实现这个函数的功能 三.函数调用 四.函数形参和实参 五.猜你喜欢 零基础 Python 学习路线推荐 : ...

最新文章

  1. linux shell函数
  2. 截屏没有了_原来华为手机的截屏方法不止3种,用了这么久,现在才知道新玩法?...
  3. 五大常用算法之四:回溯法
  4. configure project qt,如何为Qt Framework配置CLion IDE?
  5. 清华计算机本科待遇,2021年清华大学报考信息出炉 计算机专业最吃香
  6. 这样学英语三个月超过你过去学三年
  7. shell学习之突发奇想 ^_^ 打印9*9乘法表
  8. 将汉字转换成笔画代码_0基础学习五笔输入法之汉字的拆分
  9. 教你计算三种分子性质的方法
  10. 老调新弹,也玩Linq To Sql批操作
  11. 动手深度学习--windows环境安装
  12. web前端课程设计(HTML和CSS实现餐饮美食文化网站)静态HTML网页制作
  13. python爬虫批量下载图片
  14. ai时代不被取代的职业_如何在AI时代证明您的IT职业生涯
  15. Julia ---- 为Julia做一下辩解
  16. 【Spring注解驱动开发】二狗子让我给他讲讲@EnableAspectJAutoProxy注解
  17. CSS: 潜藏着的BFC
  18. GLFore 声学成像仪G100的主要用途和功能是什么?
  19. Docx4j 在页眉同时 添加logo图片和文字,logo图片显示在左边,文字显示在右边
  20. 关于http与https的区别之处

热门文章

  1. python血条游戏代码_手把手Python和pygame游戏开发教程(二)
  2. delphi打开外部.exe
  3. 高中计算机八字标语,高中教室八字励志标语有关高三的励志标语
  4. 用python实现点阵屏_用Python代码来绘制彭罗斯点阵的教程
  5. 树莓派MJPG-Streamer输出MJPG格式的白屏问题
  6. 别再说你不懂malloc()和calloc()的区别
  7. alin_foc开发日志
  8. 前端--最具文艺范的程序员
  9. [E找规律] lcLCP29. 乐团站位(找规律+数学)
  10. 挺有意思的元宵IT灯谜及其答案