我的阶乘程序有什么问题???

时间:2016-03-12 12:22:29

标签: c

输出数字错误原因何在? 该程序用于使用递归获得数字的阶乘 如果你知道网站练习更多的例子,我将非常感谢你

 #include <stdio.h>
 #include <stdlib.h>
int factorial(int a);
int main()
{
int n,x;
printf("enter ur number  ");
scanf("%d",&x);

n=factorial(x);

printf("the factorial = %d",n);



return 0;
}

int factorial(int a)
{
int fac;
if(a<=1)
{

if (a<1)
{

fac=0;
 }
return fac;
}

printf("the number = %d\n",a);

 printf("the factorial = %d\n",fac);

   fac = a * factorial(a-1);

1 个答案:

答案 0 :(得分:0)

这将始终返回0,因为最后一个fac将始终为0并且它将所有其他结果相乘。将其更改为

if(a<1)
fac=1;

还要正确缩进代码。