编程求 e=1+1/1\ +1/2!+1/3!+ +1/n!,直到第 10 项为止.

//题目是:编程求 e=1+1/1\ +1/2!+1/3!+ +1/n!,直到第 10 项为止

int i=1;
float s=1.0,e=1.0;
for(i=1;i<=10;i++){
s=s*i;
e=e+1/s;
}
printf ("%f",e) ;

img


上面是我推的答案,这里for循环里面的i 我觉得应该小于10,但是网上的答案都和上面的代码一样!求证一下!这里的i 为什么<=10;

#include <stdio.h>
float jiecheng(int n)
{
    int i;
    float s = 1.0;
    for(i = 1; i <= n; ++i){
        s *= i;
    }
    return s;
}
int main(void) { 
    int N = 10, i;
    float sum = 1;
    for(i = 1; i <= N; ++i){
        sum += 1.0 / jiecheng(i);
    }
    
    printf("e=%f",sum);
    return 0;
}

这里说的是阶乘分之一的第十项

这里的i 为什么<=10;?因为题目要求直到第 10 项就停止程序运行,输出结果。.