c语言循环函数for

inti;floata,b,c,d,pi;a=1;c=0;b=1;for(d=1;fabs(d)>1e-6;d=a/b){a=(-1)*a;c=c+d;b=b+2;pi=... int i;
float a,b,c,d,pi;
a=1;
c=0;
b=1;
for (d=1;fabs(d)>1e-6;d=a/b)
{

a=(-1)*a;
c=c+d;
b=b+2;
pi=4*c;
printf("%f\n",pi);
}

getch();
为什么这个程序,只出来7,8个数,执行到大概d=0.07的时候就不继续执行了
展开
 我来答
flyfight88
2012-05-25
知道答主
回答量:63
采纳率:0%
帮助的人:29.2万
展开全部
不知道你完整程序是什么 不过就这一段我编译的没问题,要不你就把这个FOR循环 单独拿出来编译 应该没问题
#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c,d,pi;
a=1;
c=0;
b=1;
for (d=1;fabs(d)>1e-6;d=a/b)
{

a=(-1)*a;
c=c+d;
b=b+2;
pi=4*c;
printf("%f\n",pi);
}
}

我在VC6.0下编译的
满意请采纳
追问
恩,谢谢,我之前是忘了加#include了,不过您能告诉我下为什么不加这个就会出现这个情况吗,我知道math是数学运算库,需要用到乘方根号之类的要加math,不过为什么不加的时候之前几次运行时成功的,到了第8步的时候就不成功了呢?我是刚开始自学c语言,许多不懂得地方,请包涵
追答
fabs(d)>1e-6  绝对值函数要用到math.h啊
匿名用户
2012-05-25
展开全部
试试把c=c+d,放到循环的最上面。。即
for (d=1;fabs(d)>1e-6;d=a/b)
{
c=c+d;

a=(-1)*a;
b=b+2;
pi=4*c;
printf("%f\n",pi);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
john_patson
2012-05-25 · TA获得超过170个赞
知道小有建树答主
回答量:160
采纳率:0%
帮助的人:144万
展开全部
因为不符合条件了。所以就不继续执行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
葛朋268
2012-05-28 · TA获得超过130个赞
知道答主
回答量:303
采纳率:0%
帮助的人:122万
展开全部
1e-6这个条件在d=0.07差不多就结束了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-05-26
展开全部
计算机只能显示那么长度的数。你定义的啊,a,b,c都是char型的变量没必要用float
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dongsimin321
2012-05-25 · 超过11用户采纳过TA的回答
知道答主
回答量:87
采纳率:0%
帮助的人:34.9万
展开全部
程序都不完整
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式