这怎么回事呢?
#include<stdio.h>int main()
{
int fac(int n);
int n;
int y;
printf("input an integer number:\n");
scanf("%d",&n);
y=fac(n);
printf("%d!=%d\n",n,y);
return 0;
}
int fac(int n)
{
int f;
if(n<0)
printf("n<0,data error!");
else if(n==0||n==1)
f=1;
else f=fac(n-1)*n;
return (f);
}
帮看一下这如何输入30!或31! 运行结果都正常。但输出30以下的一些数比如说20! 21! 26!28!等等 结果怎么不对是负数了呢。谢谢!