读书人

C++练习题初学者求解

发布时间: 2013-01-23 10:44:49 作者: rapoo

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++

热点推荐