c语言级数计算,误差由用户输入

1-1/2!+1/3!-1/4!+1/5.....=

#include<stdio.h>
#include<math.h>
int main() {
    double a,i=1,sum=0,t=1,up=1,term=1;
    printf("Input eps:");
    scanf("%lf",&a);
    while(fabs(t/up)>=a){
        sum+=t/up;
        t=-t;
        i++;
        up=up*i;
    }
    sum+=t/up;
    printf("%.8f",sum);
    return 0;
}.

#include<stdio.h>
int main()
{
    float esp;
    scanf("%f", &esp);
    float res=0,fac=1;
    int s=-1;
    for(int i=1;;i++){
        
        fac*=i;
        if(1.0/fac<=esp){
            break;
        }
        s*=-1;
        res+=1.0/fac*s;
    }
    printf("%f", res);
    return 1;
}