C语言程序运行后显示0.0000000,没有错误,求大神指教

#include"stdio.h"main(){intp=1;floatpi=0,i=1;whilei>=1e-6;{pi=pi+p*i;i=i/(i+2);p=-p;}... #include"stdio.h"
main()
{
int p=1;
float pi=0,i=1;
while i>=1e-6;
{
pi=pi+p*i;
i=i/(i+2);
p=-p;
}
pi=pi/4;
printf("%f",pi);
}
不是while的问题,上面我打错了,是while(i>=1e-6),各位不好意思,
另外问题是用pi/4=1-1/3+1/5-1/7+....公式求圆周率的近似值
展开
 我来答
lyklau
2012-06-18 · TA获得超过192个赞
知道小有建树答主
回答量:113
采纳率:0%
帮助的人:105万
展开全部
main()
{
int p=1;
float pi=0,i=1,k=1;
while ( i>=1e-6)
{
pi=pi+p*i;
i = 1/(k+2);
p=-p;
k+=2;
}
pi=pi*4;
printf("%f",pi);
}
看看这样对不,不过只能求近似值
1 while 后面你加了 ; 这样就不会进入循环
2 根据你的公式 pi = pi*4
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
江伟77
2012-06-18 · TA获得超过591个赞
知道小有建树答主
回答量:230
采纳率:100%
帮助的人:208万
展开全部
while i>=1e-6;
改为while( i>=1e-6)
即去掉;加上()
追问
不是while的问题,上面我打错了,是while(i>=1e-6)
追答
没有别的语法问题了,弱弱问一句,是不是程序算法错了
这程序是要计算什么的?

#include
main()
{
int p=1;
float pi=0,i=1,t=1;
while (t>=1e-6)
{
pi=pi+p*t;
t=1/(++i,++i);
p=-p;
}
pi=pi*4; //乘
printf("%f",pi);
getchar();
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1fc36d4
2012-06-18 · TA获得超过3131个赞
知道大有可为答主
回答量:1497
采纳率:100%
帮助的人:1826万
展开全部
while i>=1e-6;
这里不行吧?
while (i>=1e-6)
更多追问追答
追问
奥,不是这里,我打的时候掉了,不好意思
追答
去掉分号啊,那是空语句,会使后面花括号你的代码没有循环执行了。
而且空语句下,会导致死循环,i始终>=1e-6

改后,结果是0.191125啊

关键你是求什么啊?若是你的逻辑都错了,结果自然不对。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenfeng_abc
2012-06-18 · TA获得超过569个赞
知道答主
回答量:90
采纳率:0%
帮助的人:48.7万
展开全部
i=i/(i+2)错了
是i=1/(i+2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式