这一题,我之前是求出来了,现在又不行了,程序哪里出错了,无语了

img

img

img

14行的long改为double

long s 改成 double s
long p 改成 double p

s 要用 double 型,第18行改为:s = s+1.0/fact(i) ;

1、你不会贴图,不会贴代码啊
2、学学我的编码规范
3、代码里都是汉字符号


#include<stdio.h>
#include<math.h>

double fact(int k)
{
    long p = 1;

    for (int i = 1; i <= k; i++)
    {
        p = i * p;
    }
    
    return p;
}

int main(void)
{
    double S = 0;
    int n;

    scanf("%d", &n);
    for (int i = 1; i <= n; i++)
    {
        S = S + 1/fact(i);
        printf("i = %2d S = %4.8lf\n", i, S);
    }
}