求π
#include<iostream.h>
#include<math.h>
int main()
{
double sum=1,item=1;
double t;
int demon=1,sign=1;
while(abs(item)>1e-6)
{
demon+=2;
sign*=-1;
item=sign*1.0/demon;
sum+=item;
}
t=sum*4;
cout<<"pi= "<<t<<endl;
return 0;
}
这是一个计算π的程序 是在VC6.0中编译的 但是算出来之后pi=2.166666 可以确定的是算法是没有错 但是在是不知道错在那里
[解决办法]
远离VC6。VS2005运行结果pi= 3.14159
[解决办法]
其中abs是求int的绝对值,应该使用fabs
[解决办法]
#include<iostream.h>#include<math.h>int main(){ double sum=1,item=1; double t; double demon=1,sign=1; while((item > 1e-6) || (item < -1e-6)) { demon+=2; sign*=-1; item= sign * 1.0 / demon; sum += item; } t=sum*4; cout<<"pi= "<<t<<endl; return 0;}
[解决办法]
#include<iostream.h>#include<math.h>int main(){ double sum=1,item=1; double t; double demon=1,sign=1; while((item > 1e-6) || (item < -1e-6)) { demon+=2; sign*=-1; item= sign * 1.0 / demon; sum += item; } t=sum*4; cout<<"pi= "<<t<<endl; return 0;}
[解决办法]
GCC下运行的结果是pi= 3.14159
#include<iostream>#include<cmath>using namespace std;int main(){double sum=1,item=1;double t;int demon=1,sign=1;while(abs(item)>1e-6){demon+=2;sign*=-1;item=sign*1.0/demon;sum+=item;}t=sum*4;cout<<"pi= "<<t<<endl;return 0;}
[解决办法]
//#include<iostream.h>//#include<math.h>//推荐用c++的头文件,如果用C++的编译器#include <iostream>#include <cmath>using namespace std;int main(){ double sum=1,item=1; double t; //int demon=1,sign=1; double demon=1,sign=1; //while(abs(item)>1e-6) while(fabs(item) > 1e-6) { demon+=2; sign*=-1; item= sign / demon; sum+=item; } t=sum*4; cout<<"pi= "<< t << endl; return 0;}