C语言while用法
这是我写的代码,算的是1-1/2+1/3-1/4+1/5……+1/99-1/100#include<stdio.h>main(){inta,b,c,d;doublee;a...
这是我写的代码,算的是1-1/2+1/3-1/4+1/5……+1/99-1/100
#include<stdio.h>
main()
{
int a,b,c,d;
double e;
a=1,b=2,c=1;
while(b<=100)
{
e=a+c/b;
b=b+1;
c=-c;
}
printf("答案是%lf",e);
}
可是答案和我理想中的不对,不知错在哪里。 展开
#include<stdio.h>
main()
{
int a,b,c,d;
double e;
a=1,b=2,c=1;
while(b<=100)
{
e=a+c/b;
b=b+1;
c=-c;
}
printf("答案是%lf",e);
}
可是答案和我理想中的不对,不知错在哪里。 展开
展开全部
这个应该是你计算e = a + c/b的时候出错了。因为c b 是整数,所以c/b是正处运算,可以改成c/(b*1.0).
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为c和b都是整型,俩整型相除,会舍去小数部分。
e=1.0;
c=-1;
while(b<=100)
{
e=e+ (double)c/b;
b=b+1;
c=-c;
}
这样就可以了
e=1.0;
c=-1;
while(b<=100)
{
e=e+ (double)c/b;
b=b+1;
c=-c;
}
这样就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序修改如下:
#include<stdio.h>
main()
{
int b,c;
double e=1.0;
b=2,c=1;
while(b<=100)
{c=-c;
e=e+c*0.1/b;
b=b+1;
}
printf("答案是%lf",e);
}
运行结果为:0.968817
是你想要的结果吗?
#include<stdio.h>
main()
{
int b,c;
double e=1.0;
b=2,c=1;
while(b<=100)
{c=-c;
e=e+c*0.1/b;
b=b+1;
}
printf("答案是%lf",e);
}
运行结果为:0.968817
是你想要的结果吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第二个
看见后面的
;
了吗?
其实完整格式是
while(P3_7==0)
{
;
}
就是一直循环到不等于0
什么都不干
实际上正规的写法应该是
NULL;
而不是只有一个;
只有一个;
在代码优化时会被优化掉
看见后面的
;
了吗?
其实完整格式是
while(P3_7==0)
{
;
}
就是一直循环到不等于0
什么都不干
实际上正规的写法应该是
NULL;
而不是只有一个;
只有一个;
在代码优化时会被优化掉
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询