按下面的近似公式计算:e=1+1/1!+1/2!+1/3!+......+1/n!+.....怎么我写的这个程序值为2.000000?

#include<stdio.h>#include<conio.h>intjc(intn){intb;for(b=1;n>0;n--)b*=n;returnb;}main... #include<stdio.h>
#include<conio.h>
int jc(int n){
int b;
for(b=1;n>0;n--)
b*=n;
return b;
}
main(){
float e=1;
int n;
for(n=1;(1/jc(n))>=(1.0e-10);n++)
e+=(1/jc(n));
printf("e=%f",e+=(1/jc(n)));
getch();
}
展开
 我来答
chenfenggang99
推荐于2016-08-11 · TA获得超过1850个赞
知道大有可为答主
回答量:1746
采纳率:75%
帮助的人:1747万
展开全部
给你一个参考程序

#include <stdio.h
long factorial(long n)  
{  
    if(n == 0 || n == 1)  
        return 1;  
    else  
        return n*factorial(n-1);  
}  
long power(long x, long y)  
{  
    if(y == 0)  
        return 1;  
    else  
        return x*power(x, y-1);  
}  
void main()  
{  
    double e;  
    int i;  
    for(i = 0, e = 0.0; i < 30; i++)  
        e += 1.0*power(1, i)/factorial(i);  
    printf("%lf", e);
 printf("\n");
    //getch(); 
}  

}
更多追问追答
追问
我运行了下你给的程序,有个ERROR.
你能帮我分析下为什么我的程序是2.000000吗
追答
#include
#include
int jc(int n){
int b;
for(b=1;n>0;n--)
b*=n;
return b;
}
main(){
float e=1;
int n;
for(n=1;(1/jc(n))>=(1.0e-10);n++) //这里改为1.0/jc(n) 你的是int型号。所以是错误的
e+=(1/jc(n)); //这里也是
printf("e=%f",e+=(1/jc(n)));//还有这里
getch();
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式