网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

c语言函数递归的顺序 c语言递归函数的概念及用法

C语言函数递归调用,主函数与子函数顺序

在y!=0的情况下,fun会调用自己,要等y=0后,一层层往上。就到到fun(1)的时候再会执行printf("%d",d);putchar('\n');然后会执行fun(y*2+d)后面的,printf("%d",d);putchar('\n'),然后再往上,,,直到你最初的fun(n)后面的printf("%d",d);putchar('\n')。

巩留网站建设公司创新互联公司,巩留网站设计制作,有大型网站制作公司丰富经验。已为巩留上千提供企业网站建设服务。企业网站搭建\成都外贸网站建设要多少钱,请找那个售后服务好的巩留做网站的公司定做!

你可以在printf("%d",d),后面加一个printf("n

=

%d\n",

n);

可以看到如下结果

8

n

=

1

1

n

=

2

n

=

4

n

=

8

C语言递归函数的执行顺序?代码如下

是第一个执行完再执行第二个

递归调用可以这样理解,就是想像有很多个函数的复制体,每次调用自己都是在调用一个复制体,一直到满足

if(start=end)

return;

然后再一层一层返回。

C语言递归函数执行的顺序

楼主的程序有两处错误,给你修正了一下:

局部两边x没有引用,给你删掉

main函数没有定义类型,加void

#include stdio.h

void fun(int n)

{

int d,y;//x给你删掉了

d=n%2;

y=n/2;

if(y!=0)

{

fun(y);

}

printf("%d",d);

//putchar('\n');这个没用我给你注释了

}

void main()

{

int n;

printf("enter a number\n");

scanf("%d",n);

if(n0)

printf("Input data error\n");

else

fun(n);

putchar('\n')//最后才调用这句代码

}

下面给你分析一下:

  fun()函数是一个递归函数,什么意思呢?意思就是它会调用本身,每次函数都会先执行代码d=n%2;y=n/2;然后在判断n是否大于0,如果n大于0,函数继续回调,如果n=0,函数就结束了回调,整个程序也就完成了。

  至于你说的执行完了这句还会不会执行后面的printf("%d",d);这是肯定的,因为要输出啊,给你看看运行结果


本文标题:c语言函数递归的顺序 c语言递归函数的概念及用法
文章位置:http://bjjierui.cn/article/doogscs.html

其他资讯