编写C语言程序计算一个多项式1+1/1!+1/2!...+1/n!,并且要求误差不超过10e-5

#include<stdio.h>voidmain(){doublesum=1,d;inta,b,c=1;for(a=1;;a++){for(b=a;b>0;b--)c*... #include <stdio.h>
void main()
{
double sum=1,d;
int a,b,c=1;
for(a=1;;a++)
{
for(b=a;b>0;b--)
c*=b;
sum+=1/c;
d=sum-1/c;
if(sum-d<10e-5)
break;
}
printf("%lf\n",sum);
}
为什么输出结果是2.000000?
展开
 我来答
踏雪也寻梅
推荐于2016-09-16 · TA获得超过170个赞
知道小有建树答主
回答量:227
采纳率:0%
帮助的人:161万
展开全部
因为sum是double型,所以赋double型的数,故初始为double sum=1.00,d;c为整型,故1/c仍为整型,达不到sum是double的要求,故c也得初始化为double,for条件里改为c*=b*1.00;跟着的语句改为sum+=1.00/c;
d=sum-1.00/c;改完应该如愿了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
478617
2015-05-12 · TA获得超过875个赞
知道小有建树答主
回答量:725
采纳率:100%
帮助的人:95.9万
展开全部
	float b = 1.0f, a = 1.0f, s = 1.0f;
float c = 1.0f / b;
while(c > 5E-6)
{
b *= a;
a += 1.0f;
c  = 1.0f / b;
s += c;
}
printf("%.5f\n", s);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2015-05-12 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6697万
展开全部

代码逻辑太乱,且多处错误——

int main(void){
    double sum,d;
    int a;
    for(d=sum=a=1;d>1.0E-5;sum+=(d/=a++));
    printf("%lf\n",sum);
    return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式