C++练习题,初学者求解
C++练习题,菜鸟求解
C++练习题,菜鸟求解
#include <stdio.h>
void fun(int x)
{
if(x/2>0)fun(x/2);
printf("%d",x);
}
void main()
{
fun(3);printf("\n");
}
请问答案是13,为什么??????详细点,谢谢大家了
------解决方案--------------------
if(x/2>0)fun(x/2);
printf("%d",x);
因为x/2=1,所以执行fun(1)
fun(1)打印1,递归结束,回到之前的函数
然后打印3
就是13
------解决方案--------------------
fun(3)
3/2=1>0 所以fun(1)
1/2=0所以if不成立
打印1
调用fun(1)结束
打印3
调用fun(3)结束
打印换行
要学会调试,走走看不就明白了
C++练习题,菜鸟求解
#include <stdio.h>
void fun(int x)
{
if(x/2>0)fun(x/2);
printf("%d",x);
}
void main()
{
fun(3);printf("\n");
}
请问答案是13,为什么??????详细点,谢谢大家了
------解决方案--------------------
if(x/2>0)fun(x/2);
printf("%d",x);
因为x/2=1,所以执行fun(1)
fun(1)打印1,递归结束,回到之前的函数
然后打印3
就是13
------解决方案--------------------
fun(3)
3/2=1>0 所以fun(1)
1/2=0所以if不成立
打印1
调用fun(1)结束
打印3
调用fun(3)结束
打印换行
要学会调试,走走看不就明白了