主题:[讨论]求圆周率pi
充满烦恼的青年
[专家分:0] 发布于 2012-06-23 19:39:00
求圆周率pi
请问我的程序哪里写错了。
#include<iostream.h>
#include<math.h>
int main()
{
double sign=1,pi=1,item=0,s=1;
int n=2;
while(fabs(1/(2*n-1))>0.0000001)
{
sign=-sign;
s=1/(2*n-1);
item=sign*s;
pi=pi+item;
}
cout<<"pi="<<pi*4<<endl;
return 0;
}
回复列表 (共2个回复)
沙发
ZBC19921123 [专家分:320] 发布于 2012-06-23 23:10:00
[color=0000FF]#include<iostream>
#include<cmath>
using namespace std;
int main()
{
double sign=1.0,pi=1.0,item=0.0,s=1.0,k = 1.0;
while(fabs(s)>1e-8)
{
sign=-sign;
s=1/ (k+=2.0);
item=sign*s;
pi=pi+item;
}
cout<<"pi="<<pi*4<<endl;
return 0;
}
--------------------------------------
#include<iostream.h>
#include<math.h>
int main()
{
double sign=1,pi=1,item=0,s=1;
int n=2;
while(fabs(1/(2*n-1))>0.0000001)
{
sign=-sign;
s=1/(2*n-1[color=FF0000]);//这里(2*n-1)为整数,故s=1/(2*n-1) = 0且恒不变,故pi = 4恒不变。 [/color]
item=sign*s;
pi=pi+item;
}
cout<<"pi="<<pi*4<<endl;//用cout必须在前声明using namespace std;或using std::cout;
return 0;
}
板凳
充满烦恼的青年 [专家分:0] 发布于 2012-06-24 13:52:00
谢了,但是因为我头文件包含了iostream.h 故此题不能加using namespace std;
我来回复