我编写的函数哪里出了问题,求解

编写函数,根据给定公式计算 e的值:1+1/1!+1/2!+1/3!4+……+1/n!的值(取
前n 项),要求在主函数中输入 n的值,调用函数并输出结果。
#include<stdio.h>
int main()
{int max(int n,int i);
int i,n;
double sun-1,e,a=1;
printf("请输入n的值:");
scanf(""%d",8n);
for(i=l;i<=n;i++)
{a=a*i;
sum=sum+1/a;
printf("e的值为:%.4f",e);
return 8;
}

阶乘的计算方式有问题,应该是n!= 1 * 2 * 3 * 4 *...*n

#include<stdio.h>
int main()
{
    int i, n;
    double sum = 0, e, a = 1;
    printf("请输入n的值:");
    scanf("%d",&n);
    for (i = 1; i <= n; i++)
    {
        a = 1;
        for (int j = 1; j < i; j++)
        {
            a = a * j;
        }
        sum += 1 / a;
    }
    printf("e的值为:%.4f", sum);
    return 0;
}