为什么我的编码输出为0
我的编码几乎是正确的,DEVC ++中没有错误,请帮我找到编码错误
代码
#include <stdio.h>
int factorial(int);
int main()
{
int n;
printf("Enter a number to find it's Factorial: ");
scanf("%d", &n);
if (n < 0)
{
printf("Factorial of negative number not possible\n");
}
else
{
printf("%d!=%d\n",n, factorial(n));
}
printf("The factorial is %d",factorial(n));
}
int factorial(int n)
{
if (n == 1)
{
return 0;
}
else
{
return(n * factorial(n - 1));
}
}
答案 0 :(得分:1)
替换 如果(N == 1) 返回0;
与 如果(n == 1 || n == 0) 返回1;
1!是1。
答案 1 :(得分:0)
如果将数字乘以0,您认为会发生什么?注意0!是1,而不是0,所以是1!。
以{em>非常的方式查看return 0;
语句。