MchengY
2021-06-23 20:26
采纳率: 66.7%
浏览 15

zhe递归函数怎么看,为什么我算出来的是2,求解析

#include
 <stdio.h>
 void fun( int x)
 { 
    if (x/5>0) fun(x/5);
     printf("%d",x); 
}
void main()
 { 
     fun(11);
     printf("\n");
 }
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 暖晴的天 2021-06-23 20:30
    已采纳

    第一次  11,11/5 = 2 > 0  执行 fun(x/5) 此时传入参数为2 , 2 / 5 =0 (int类型计算) 为假, 输出 2,返回上一层,输出11,最后输出为211\n

    已采纳该答案
    评论
    解决 1 无用
    打赏 举报
  • 自信男孩 2021-06-23 20:32

    11--》第一次进入fun函数

    11/5 == 2 > 0第二次进入fun函数,

    2/5 == 0 >0执行printf,输出2,退到第一次执行fun函数内,执行printf,此时x是11,因此输出11

    fun此时执行完成,回到main函数内;

    由于输出的是2次,因此先输出2,在输出11,因此结果是211

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题