#include
long double Fac(int n)
{
long double f;
if (n<0)
printf("Data error");
else if (n==1 || n==0)
f=1;
else
f=Fac(n-1)*n;
return (f);
}
main()
{
int s;
long double y;
printf("ok+.\n");
scanf("%d",&s);
y=Fac(s);
printf("\n%f\n",y);
}
在VC下运行正常,但是在linux下的结果会出问题,用double就可以了。