C语言 递归求阶乘和

这个在vs2005运行是没有问题的,不过这样定义可以把主函数里面的int i;去掉是可以的
楼主这是求的是1!+2!+3!+4!+5!的阶乘之和
这个的结果正是153
就一个问题,在for循环里面把那个int去掉,因为前面已经定义过了,这里不需要int,或者就是把前面的int i去掉也可以。
#include
int p(int a)
{
if(a<=1) //这里要写a<0的情况

return 1;
else
return a*p(a-1);
}
void main()
{int i;
int total=0;
for(int i=1;i<=5;i++)
{
total+= p(i);
}
printf("%d",total);
}

递归求阶乘