(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; }