C++求π的近似值

来源:百度知道 编辑:UC知道 时间:2024/06/05 02:43:41
求π的近似值

#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main()
{
double sum=0,item=1;
for(int sign=1,demon=1;abs(item)>1e-6;demon+=2,sign*=-1)
{
item=sign/double(demon);
sum+=item;
}
cout<<"Pi= "<<fixed<<sum*4<<endl;
}
我这个哪写错了
为什么结果输出是2.666667

你有两种做法:
1、不用VC6.0,因为在VC6.0中只有abs(int),所以abs(item)想当于abs((int)item)哦,在其它编译器(标准的)都有abs(double _x)的重载函数的。
2、在VC6.0中只有fabs(double),所以你可以用fabs(item)来代替abs(item)。
PS:如果只是学习C++建议用VC 6.0以上版本或都G++,谢谢!

#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main()
{
double sum=0,item=1;
for(int sign=1,demon=1;fabs(item)>1e-6;demon+=2,sign*=-1)
{
item=sign * 1.0/double(demon);
sum+=item;
}
cout<<"Pi= "<<fixed<<sum*4<<endl;
}

abs(item)是对整数求绝对值的,当item小于1时,求绝对值就变成0了。把abs改成fabs就OK了。