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);
}
可是答案和我理想中的不对,不知错在哪里。
展开
 我来答
淦海瑶s1
推荐于2017-11-25 · TA获得超过3646个赞
知道大有可为答主
回答量:3341
采纳率:100%
帮助的人:756万
展开全部
需要稍作修改
#include<stdio.h>
main()
{
int a,b,c,d;
double e=0.0; //这里e要初始化
a=1,b=1,c=1; //b要从1开始,要不然第一个算不上
while(b<=100)
{
e=c*1.0/b;//要不然是整数除以整数,值是整数,也就是0
b=b+1;
c=-c;
}
printf("答案是%lf",e);
}
百度网友ad6596c
2012-02-29 · 超过20用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:42.5万
展开全部
这个应该是你计算e = a + c/b的时候出错了。因为c b 是整数,所以c/b是正处运算,可以改成c/(b*1.0).
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Go浪人生
2012-02-29 · TA获得超过2472个赞
知道小有建树答主
回答量:738
采纳率:100%
帮助的人:906万
展开全部
因为c和b都是整型,俩整型相除,会舍去小数部分。
e=1.0;
c=-1;
while(b<=100)
{
e=e+ (double)c/b;
b=b+1;
c=-c;
}
这样就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
慧雪767
2012-03-01 · TA获得超过777个赞
知道答主
回答量:120
采纳率:0%
帮助的人:127万
展开全部
程序修改如下:
#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
是你想要的结果吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
台玛开若山
2019-05-05 · TA获得超过3770个赞
知道大有可为答主
回答量:3134
采纳率:34%
帮助的人:484万
展开全部
第二个
看见后面的
;
了吗?
其实完整格式是
while(P3_7==0)
{
;
}
就是一直循环到不等于0
什么都不干
实际上正规的写法应该是
NULL;
而不是只有一个;
只有一个;
在代码优化时会被优化掉
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式