有个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;
} 展开
刚入门的低端问题 请大神赐教。。。
我的程序代码。。。
#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;
} 展开
1个回答
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;
}
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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询