C语言小白求助:用π/4≈1-1/3+1/5-1/7+。。。。公式求π的近似值,直到某一项的绝对值小于1e-6为止

 我来答
抗树枝桐壬
2019-08-20 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.3万
采纳率:32%
帮助的人:642万
展开全部
用For语句没有问题。但应该把
pi=pi+t
放到后面,应为执行完for下面的大括号才执行
这句
n=n+2
严格按照你列出来的等式,每执行一次for循环体进行一次算术运算,改成下面这样就可以了
#include
<stdio.h>
#include
<math.h>
int
main()
{
int
s;
double
t,n,pi;
s=-1,t=1,n=1.0,pi=0;
for(t=1;fabs(t)>=1e-6;n=n+2)
{
s=-s;
t=s/n;
pi=pi+t;
}
pi=pi*4;
printf("%.6f\n",pi);
return
0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
闾丘素芹支辰
2020-01-21 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.3万
采纳率:34%
帮助的人:836万
展开全部
确实有点乱
不过你的循环体已经错了!
for(t=1;fabs(t)>1e-6;n++)
{
pi+=t;
s=-s;
t=s/(n+2);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浦竹青柏己
2019-08-20 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:33%
帮助的人:916万
展开全部
这道题不要用for语句作,因为循环次数不确定
#include
<math.h>
main()
{
int
s;
float
n,t,pi;
t=1;pi=0;n=1.0;s=1;
while((fabs(t))>1e-6)
{pi=pi+t;
n=n+2;
s=-s;
t=s/n;
}
pi=pi*4;
printf("pi=%10.6f\n",pi);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式