#include <stdio.h>void reverse(int n){ if((n/2) !=0) reverse(n/2); printf("%d",n%2);}int main(){ int i; while(~scanf("%d",&i)) { reverse(i); putchar('\n'); }}递归函数如何运用请就这个代码详细讲解一下,if的作用以及何时起到作用的。请大神详细解析谢谢。
1 回答
已采纳
赵小妖么么哒
TA贡献44条经验 获得超26个赞
给你个小建议:
你有没有谭浩强的c语言的书?红色的。
我建议你好好的看看那本书。
现在回答你的问题:
假设i=9
while循环第一次执行:
(1). reverse(9);
(2).进入 reverse(i);这个函数
(3).n=9
(4)执行if((n/2) !=0)
(5)最重要的一步也是核心一步:
执行reverse(n/2);
再次进入reverse(n);这个函数
注意此时没有执行printf("%d",n%2);
(6)一直重复执行(5)
直到(n/2) ==0
(7)当(n/2) ==0时,就执行 printf("%d",n%2);
(8)然后结束函数,然后执行while ,然后重复上面的步骤。
--------------------分割线----------------------------------
不知道,我讲清楚了么,觉得自己不适合做老师啊。\(^o^)/~
不懂再问我。
希望采纳。\(^o^)/~
还有,谢谢你的邀请。
- 1 回答
- 1 关注
- 1128 浏览
添加回答
举报
0/150
提交
取消