首页 > 其他分享 >C语言学习第11天,函数递归和调试代码

C语言学习第11天,函数递归和调试代码

时间:2022-09-19 13:44:36浏览次数:79  
标签:11 return 函数 递归 int 回归 C语言 func

函数递归

函数需要被另一个函数调用才能执行,而主函数main在程序运行时会被自动调用。其实函数也可以自己调用自己

#include<stdio.h>

void func(int n)

{if(n==5)//n为5时,结束递推

return;

printf("%d\n",n);

func(n+1);}//再将n值传回func,然后继续打印

int main()

{func(0);//被主函数调用,并且n为0,进入func函数

return 0;}

 

 蓝色线条画出了从下级回归的流程。箭头方向和标号数字代表执行顺序。流程在n小于5之前,一直递推至下级函数。当n为5时,从下级函数开始回归。

例题:用递归计算阶乘n!

#include<stdio.h>

int f(int n)

{if(n==0||n==1)

{return 1;}

return n*f(n-1);}

int main()

{int result=f(4);

printf("%d\n",result);

return 0;

递推流程中,可以确定当前的n分别为4,3,2,1。接着进入了递归调用f(n-1),直到n为1时,开始回归。

 

 

回归到n为2时,计算2 * 1。回归到n为3时,计算3 * (2 * 1)。回归到n为4时,计算4 * (3 * 2 * 1)

 

     

标签:11,return,函数,递归,int,回归,C语言,func
From: https://www.cnblogs.com/mmwl/p/16707430.html

相关文章

  • Oracle 19c pdb 导入11g数据库
    Oracle19c导入11g数据库一、创建pdb(1)使用oracle用户登录到cdb#su–oracle#sqlplus/assysdba;  附oracle19c基本操作:①查看容器名称,必须为cdb$root,需要在......
  • ElementUI Table 表格树形结构多选框选中父级时会选中子级(递归多级)
    <template> <el-table:data="renderDynamic"ref="product"borderrow-key="id":row-class-name="rowClassNameFun" :header-row-class-name="headerRowClassName"......
  • 【RocketMQ 课程笔记】11.RocketMQ消息发送之普通消息
    RocketMQ消息发送之普通消息架构拓扑NameServer:192.168.31.103Master:192.168.31.105Slave:192.168.31.111执行流程Master与Slave启动向NameServer注册生产者Prod......
  • C++11 -- 匿名函数(lambda 表达式)
    0.一道题目引入关于sb力扣定义外部函数和变量报错这件事最初我定义了一个\(cmp\)函数用来对\(vector\)排序,和一个全局变量\(unordered\_map\)用来记录元素个数......
  • java0蓝途之day11
    1,继承(extends)继承者被称为子类,被继承者被称为父类2,继承的特点继承之后,子类就会自动拥有父类中的所有非私有的属性和方法(不包含构造方法)类只能单一继承(一个类只能继承......
  • 我的设计模式之旅、11 生成器(建造者)模式
    编程旅途是漫长遥远的,在不同时刻有不同的感悟,本文会一直更新下去。思考总结思考问题没有生成器模式的情况下在构建不同形式的复杂对象时的问题:如果为每种可能的对象都......
  • c语言第4章
    本周学习我了解了字符的输出scanf()函数输出格式,格式控制字符串的使用,在数据的格式化输入时的10种情况,以及%c的输入问题和解决方法格式转换说明符:%d:10进制 %o:8进制 ......
  • C语言:利用指针交换两个变量 的值
    #include<stdio.h>voidswap(int*p1,int*p2){inttmp=*p1;*p1=*p2;*p2=tmp;}voidswap1(int*p1,int*p2){ *p1=*p1+*p2; *p2=*p1-*p2; *p1=*p1-*p......
  • 【题解】CF1311E Construct the Binary Tree
    题目链接-->Problem-E-Codeforces题目大意给定\(n\)和\(d\),你需要构造一棵\(n\)个点的二叉树满足所有点的深度之和恰好为\(d\)。\(2≤n,d≤5000\)。分析......
  • C语言短路与短路或
    在C语言中短路与&&短路或||在进行#include<stdio.h>intmain(){ inta=1,b=2,c=3,d=4,m=2,n=2; //在这里如果m=a>b第一个表达式结果为1就是true,第二个表达式......