使用C程序查找因子

时间:2017-03-21 15:51:57

标签: c recursion

为什么我的编码输出为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));
  }
}

2 个答案:

答案 0 :(得分:1)

替换 如果(N == 1) 返回0;

与 如果(n == 1 || n == 0) 返回1;

1!是1。

答案 1 :(得分:0)

如果将数字乘以0,您认为会发生什么?注意0!是1,而不是0,所以是1!。

以{em>非常的方式查看return 0;语句。