我无法理解我的C程序中的逻辑

#include <stdio.h>
int factorial(int value){
    if(value == 0){
        value * factorial(value - 1);
    }
}
int main()
{
    int value = 0;
    printf("The factorial of %d of %d",value, factorial(value));
}

我得到了一个输出

The factorial of 0 is -1

谁能解释为什么我得到 -1 ???

我试着看一些关于这个的视频,但我没有得到答案

如果可能,请解释一下其中的逻辑?

谢谢

回答

有几个问题factorial:它从不返回任何内容,并且在0传递给它时递归(这应该是基本情况并且应该返回1)。尝试这个:

int factorial(int value) {
    if (value == 0) {
        return 1;
    }
    return value * factorial(value - 1);
}


以上是我无法理解我的C程序中的逻辑的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>