输出数字错误原因何在? 该程序用于使用递归获得数字的阶乘 如果你知道网站练习更多的例子,我将非常感谢你
#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);
答案 0 :(得分:0)
这将始终返回0,因为最后一个fac将始终为0并且它将所有其他结果相乘。将其更改为
if(a<1)
fac=1;
还要正确缩进代码。