有个C++编程序算圆周率的,用级数逼近,Pi/4=1-1/3+1/5-1/7+1/9...............要求精确到小数点后面6位

我编了一个,但运行的结果是4.000000,而不是3.1415926。。。。。。求助刚入门的低端问题请大神赐教。。。我的程序代码。。。#include<iostream>... 我编了一个,但运行的结果是4.000000,而不是3.1415926。。。。。。求助

刚入门的低端问题 请大神赐教。。。

我的程序代码。。。
#include<iostream>
#include<iomanip>
#include<cmath>

using namespace std;
int main()
{
double item=1, sum=0;
for(int n=1;abs(item)>1e-6;n++)
{
sum+=item;
item*=(-1.0)*(2*n-1)/(2*n+1);

}

cout<<"Pi= "<<setiosflags(ios::fixed)<<setprecision(6)<<sum*4<<endl;

}
展开
 我来答
匿名用户
2011-12-01
展开全部
注意这里:
for(int n=1;abs(item)>1e-6;n++)
应该使用:
for(int n=1;fabs(item)>1e-6;n++) //浮点数使用fabs

代码:
#include<iostream>
#include<iomanip>
#include<cmath>

using namespace std;
int main()
{
double item=1, sum=0;
for(int n=1;fabs(item)>1e-6;n++)
{
sum+=item;
item*=(-1.0)*(2*n-1)/(2*n+1);
}

cout<<"Pi= "<<setiosflags(ios::fixed)<<setprecision(6)<<sum*4<<endl;

}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式