编译c语言程序,求e,e=1+1/1!+1/2!+1/3!+......+1/n!

(1)用for循环,计算前50项。(2)用while循环,直至最后一项的值小于1e-4... (1)用for循环,计算前50项。
(2)用while循环,直至最后一项的值小于1e-4
展开
 我来答
泡望笑
2011-07-26 · TA获得超过127个赞
知道答主
回答量:92
采纳率:100%
帮助的人:56.9万
展开全部
(1)for循环:
#include "stdio.h"
void main()
{
int i;
long s=1;
double e=1.0;
for(i=1;i<=50;i++)
{
s*=i;
e+=1.0/s;
}
printf("%lf",e);
}
(2)while循环:
#include "stdio.h"
void main()
{
int i=1;
long s=1;
double e=1.0;
while(1.0/s>=1e-4)
{
s*=i++;
e+=1.0/s;
}
printf("%lf",e);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yunlkong
2011-08-10 · TA获得超过5711个赞
知道大有可为答主
回答量:9695
采纳率:0%
帮助的人:1.9亿
展开全部
stdafx.h是预编译头文件,顾名思义,预编译时使用,工程设置中如果不需要可以注释掉。如果需要可以自己生成一个,或从其他工程中复制。其做用是加速编译的d
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xc1395
2011-07-25 · 超过23用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:72.6万
展开全部
#include <stdio.h>
double fun(int n);
int main()
{
int i;
double e1=0,e2=0;
for(i=0;i<50;i++)
{
e1+=fun(i);
}
i=0;
while(fun(i)>=0.0001)
{
e2+=fun(i);
i++;
}
printf("%lf %lf\n",e1,e2);
return 0;

}

double fun(int n)
{
if(n==0||n==1)
return 1;
else return 1.0/n*fun(n-1);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式