比如下面这段代码
#include<stdio.h> int factorial(int n){ int result; if(n<0) { printf("输入错误!\n"); return 0; } else if(n==0 || n==1) { result=1; } else { result=factorial(n-1)*n; } return result; } int main(){ int n=5; printf("%d的阶乘=%d\n",n,factorial(n)); return 0; }
三种情况分别有三个不同的返回值,那么这些返回值最后返回到了哪里,又对程序运行的最终结果产生了什么影响
一共有return 0; return result; return 0; 三次返回值,第一个是当满足条件时,把0返还给函数,相当于复位,
第二次是吧result的值返还给函数,这里result=factorial(n-1)*n,经过计算可得=120,后面在主函数main处调用; 第三次是把0返还主函数main。 望采纳
这不是函数递归么 你可以设n=3,然后自己心里或手动模拟这段程序;再试试n=4,n=5 应该会明白的