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

adi*_*t98 -5 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);

}
Run Code Online (Sandbox Code Playgroud)

ase*_*ldt 5

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

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

}
Run Code Online (Sandbox Code Playgroud)

  • 那怎么样-1 ... (4认同)