这个递归怎么出来的为什么是 3 个值?
#include<stdio.h>void fun (int m ,int n ){
if(m>=n) printf("%d",m);
else fun(m+1,n);
printf("%d",m);}
main()
{fun(1,2);}
//分析如下: /* //这是第一步 int main() { if(1>=2) printf("%d",1); else fun(1+1,2);// 把代码嵌套进来,效果如下 printf("%d",1); return 0; } 把fun(1+1,2)的代码嵌套进来后,就变成: int main() { if(1>=2) printf("%d",1); else ***************fun(1+1,2)展开后********************* if(1+1>=2) printf("%d",1+1);//条件满足,打印2 else fun(2+1,2); printf("%d,1+1"); //你把这个打印 2 漏掉了!!!!! **************************************************** printf("%d",1);//第是原始的m=1!!!!!!!; return 0; } */带感叹号的地方,要注意看。