为什么这个阶乘的递归程序不起作用?

时间:2017-06-26 16:10:00

标签: c recursion factorial

下面是代码,请准确指出我错在哪里。 我已经宣布,定义了这个功能,我不知道出了什么问题。

#include<stdio.h>
int factorial(int b); /* Declaration */


int main()
{
    int num;
    printf("Enter number: ");
    scanf("%d", &num);
    printf("%d",factorial(num));
    return 0;
}

int factorial(int b) /*Function definition*/
{

    return b*factorial(b-1);

}

1 个答案:

答案 0 :(得分:5)

你需要在某个时候结束递归:

int factorial(int b) /*Function definition*/
{
    if (b == 0) return 1;
    return b*factorial(b-1);

}