这个递归怎么出来的为什么是 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;
}
*/带感叹号的地方,要注意看。