fac()函数中没有return应该会编译报错的。代码正解如下:
int fac(int n)
{
int fact;
if (n==1)
return fact = 1;
else
return fact = fac(n-1)*n;
}
显然你这个递归写错了,哪本书敢这么坑人啊
去看” 1000道C语言和C++语言的练习题笔试题及答案“的第14题,瞧瞧人家是怎么写的。
int fac(int n)
{
int fact;
if (n==1)
return fact = 1;
else
return fac(n-1)*n;
}