C语言代码求解释

#include<stdio.h>
fun(int x)
{if(x/2>0) run(x/2);
printf("%d",x);
}
main()
{
fun(6);
printf("\n");
}

#include<stdio.h>
fun(int x) //定义一个函数叫fun,接收一个整数作为参数
{if(x/2>0) run(x/2); //这里我猜测应该是if (x/2>0) fun(x/2),判断如果这个数如果>=2的话就对这个数除以2的值递归调用该函数
printf("%d",x); //输出x
}
main() //c语言主函数
{
fun(6); //对参数六调用上面的函数
printf("\n");
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-04
#include<stdio.h>
fun(int x)    //如果下面是return的话,。这里是不是应该加上int?
{if(x/2>0) run(x/2);  //这里应该是return吧?返回的意思
printf("%d",x);
}
main()
{
fun(6);
printf("\n");
}

如果大于零,就返回该数的二分之一。

如果小于零,打印一下

第2个回答  2013-11-04
我没看到run这个函数,你是不是把fun写成了run?
这是一个典型的递归函数,所谓递归就是自己调用自己,这个fun函数的作用就是不停将自己除以2,如果商不大于零,就继续调fun,直到x除以2的商小于或者等于0的时候就打印出x的值。
要注意的是x是int型,所以当x小于2时,x/2不会是小数,而是0!

追问

书上run错误。谢谢

相似回答