
请问问题到底在哪,改了几次都这样,越改越错

这一个阶乘代码应该怎么写
float fun(int n)
{
float re=0;
if (n == 0 ){
re = 0;
return re;
}
re = 1.0 / n;
if (n % 2 == 0) {
return -re + fun(--n);
}
else
{
return re + fun(--n);
}
}
int main()
{
printf("%f", fun(3));
}
