才疏学浅,你的程序好多看不到,我挑主要的for循环中的说:
#include "iostream"
#include "mathh"
using namespace std;
void main()
{
int n = 1;
double P = 0, pi;
for(n=1;pow((2n-1),(-1))>pow(10,(-7));n++) //pow()的返回值是double的,1/n返回的应该是取整的数吧,那就应该是0了。还有条件应该是大于,要不根本不循环下去。
{
P+=(pow((-1),(n+1))pow((2n-1),(-1)));
}
pi = P4;
cout << pi << endl;
}
#include<stdioh>
#include<mathh>//开根号我用了数学库函数
int main()
{
double Pi=2,x=0,t;//我把第一项2作为Pi的初始值
while(1)
{
x=sqrt(x+2);//x是分母
t=2/x;//t是现在要乘的数
Pi=Pit;
if(t-1<1e-14) break;//因为t一定大于1,就这么写了;精确到小数点后14位
}
printf("%14lf\n",Pi);//小数点后14位
return 0;
}
#include<stdioh>
#include<mathh>
#include <iostream>
using namespace std;
double proc(double eps)
{
int i;
double pi=00,t=1;
for(i=1;;i++)
{
if(t>=eps)
{
pi=pi+t;
t=ti/(2i+1);
}
else break;
}
return (2pi);
}
void main()
{
double s;
printf("Enter a precision:\n");
//scanf("%f\n",&s);
cin>>s;
//printf("%f",proc(s));
cout<<proc(s);
}
算法应该没问题,我把输入输出改成了c++的形式就有输出结果了,你试一下吧 。可能是c语言的输入输出格式不支持你写的形式吧。
以上就是关于使用C++,求pi的近似值全部的内容,包括:使用C++,求pi的近似值、用C语言编程计算π的值、看一下这个求pi的C程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)