C中的递归因子程序混淆

时间:2014-12-20 18:44:42

标签: c

int factorial(int n); 
int main() 
{ 
    int n;  
    printf("Enter an positive integer: "); 
    scanf("%d",&n); 
    printf("Factorial of %d = %ld", n, factorial(n)); 
    return 0; 
} 
int factorial(int n) 
{ 
   if(n!=1) 
        return n*factorial(n-1); 
} 

请解释此计划的运作方式。我在factorial函数中的if语句之后应用了for循环,但是它是如何工作的。

1 个答案:

答案 0 :(得分:0)

int factorial(int n){
    if(n==1)
       return 1;
    return n*(factorial(n-1));

}

这是正确的:)我认为你的代码不应该编译,因为函数factorial(int n)没有定义的return语句!