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+....公式求圆周率的近似值 展开
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+....公式求圆周率的近似值 展开
4个回答
展开全部
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
{
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while i>=1e-6;
改为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();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while i>=1e-6;
这里不行吧?
while (i>=1e-6)
这里不行吧?
while (i>=1e-6)
更多追问追答
追问
奥,不是这里,我打的时候掉了,不好意思
追答
去掉分号啊,那是空语句,会使后面花括号你的代码没有循环执行了。
而且空语句下,会导致死循环,i始终>=1e-6
改后,结果是0.191125啊
关键你是求什么啊?若是你的逻辑都错了,结果自然不对。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
i=i/(i+2)错了
是i=1/(i+2)
是i=1/(i+2)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询