这个程序就阶乘的和哪里错了

img

两个地方错
1、e=13;放for外面
e=13;
for(i=1;i<=n;i++)
{
e+=fact(i);
printf("%d\r\n",e);
}
2、e+=fact(n);要改成e+=fact(i);

e赋值放在循环外面
代码修改如下

#include <stdio.h>
double fact(int n);
int main()
{
    int i,n,e=0;
    printf("Enter:");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        e+=fact(i);
    }
    printf("%d",e);
    return 0;
}
double fact(int n)
{
    int i;
    double product=1;
    for(i=1;i<=n;i++)
    {
        product*=i;
    }
    return product;
}