编写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? 展开
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? 展开
3个回答
展开全部
因为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;改完应该如愿了
d=sum-1.00/c;改完应该如愿了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码逻辑太乱,且多处错误——
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;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询