c语言求和while语句和阶乘

img


img

img

img

咱先写出来一版,有问题再帮你看,如何


#include <stdio.h>
#include <math.h>
double fact(int n) {
    int i;
    double d;

    d=1.0;
    for (i=1;i<=n;i++) d*=i;
    return d;
}
int main() {
    double x,s,e;
    int n;

    scanf("%lf",&x);
    s=1.0;
    n=1;
    while (1) {
        e=pow(x,(double)n)/fact(n);
        s+=e;
        if (e<0.00001) break;
        n++;
    }
    printf("%.2lf",s);
    return 0;
}

供参考:

#include <stdio.h>
#include <math.h>
long long int fact(int n)
{
    long long int s = 1;
    int  i;
    for (i = 1; i <= n; i++)
        s *= i;
    return s;
}
int main()
{
    double x, t = 1, s = 1;
    int  i = 1;
    scanf("%lf", &x);
    while (fabs(t) > 1e-5)
    {
        t = pow(x, i) / fact(i);
        s += t;
        i++;
    }
    printf("s=%.2f",s);
    return 0;
}