#include <stdio.h>
int jiecheng(int n){
int ji;
if ( n==1 ){
ji = 1;
printf("n==1 %d\n", ji);
printf("%d\n", n);
}else{
ji = jiecheng(n-1)*n;
printf("n==2 %d\n", ji);
printf("%d\n", n);
}
printf("return %d\n", ji);
printf("%d\n", n);
return ji;
}
int main(int argc, const char * argv[])
{
int result = jiecheng(5);
printf("%d\n", result);
return 0;
}
/*******************************
结果为
n==1 1
1
return 1
1
n==2 2
2
return 2
2
n==2 6
3
return 6
3
n==2 24
4
return 24
4
n==2 120
5
return 120
5
120
********************************/
执行的步骤和流程控制的步骤不一样呀 具体步骤是怎么执行的?(被调函数中的printf是自己加的) |
|