这道函数递归调用的执行顺序是什么?(有例题,请根据0-1-2-__来告诉我)

2025-05-30 07:49:34
推荐回答(1个)
回答1:

更改程序如下:
#include"stdio.h"
long fun(int n) { // 1
printf ("1-");
if (n>1) { //2
printf("2-3-");
return (n*fun(n-1)); //3
}
else if(n==1) {//4
printf("2-4-5-");
return 1; //5
}
}

main() {
int k=10;
printf("0-");
printf("\n%d!=%ld\n",k,fun(k)); // 0
getch ();
}
得到结果:
0-1-2-3-1-2-3-1-2-3-1-2-3-1-2-3-1-2-3-1-2-3-1-2-3-1-2-3-1-2-4-5-
10!=3628800
是你要的结果么?