(1)我的程序
#include<iostream> using namespace std; int YuanZhou(int); int main() { int n; double temp,sum=0; cout<<"please input an number: "<<endl; cin>>n; for(int i=1;i<=n;i++) { if(i%2==0) { temp=(-1.0/YuanZhou(i));//两个int型相除得到的结果会自动变成int型 }else { temp=(1.0/YuanZhou(i));//隐式类型转换 } sum+=temp; } cout<<4*sum<<endl; return 0; } int YuanZhou(int index) { if(index<0) { return -1; }else { return (2*index-1); } }
(2)网上的正确程序:
#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; }