这个程序怎么理解? #include<stdio.h> fun(int x) { if(x⼀2>0)fun(x⼀2); printf("%d",x); } main() { fun

2024-11-09 09:37:00
推荐回答(4个)
回答(1):

这是一个递归函数,你要是学过栈的话,理解这个应该很容易,但既然你问了,说明你应该没学过的,具体运行的过程是这样的:
第一层:
{
3>0
{
fun(3);
}
printf("6");
}
第二层:
{
1>0
{fun(1)
printf("3")
}
printf("6");
}
第三层:
{
{
{1/2<0(到这里就返回了,然后依次进行下面的运算,也就是分别输出1、3和6)
printf("1");
}
printf("3")
}
printf("6");
}

回答(2):

这是个递归的程序。当x/2>0时,进行递归。
执行fun(6)的时候,会一次执行fun(6)->fun(3)->fun(1)。到fun(1)时,x/2不大于0了,开始依次返回,也就是执行printf("%d",1);->printf("%d",3);->printf("%d",6);
输出的结果是:
136

回答(3):

#include /*头文件*/
fun(int x) /*含参数的函数,下面是函数体*/
{ if(x/2>0) fun(x/2); /*将X除2,调用自己,只要比2大一直除2,相当于循环*/
printf("%d",x); /*输出X的值*/
}
main() { fun(" 随便一个数") ;} /*调用fun(x)函数*/
这个程序没什么意义

回答(4):

这是个递归程序,函数调用自己,可理解为嵌套调用,直到x/2<=0,开始返回
输出
0136