求pi的近似值#include #include void main() { int i=1; double sum=0; double pi=0,t; do{ sum=sum+1/(float)(i*i); i++;pi=sqrt(6*sum); t=pi-3.14159165;}while(fabs(t)>=1e-5);printf("%f",pi);}为何输不出东西来?错在哪里了?
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/25 23:14:35
求pi的近似值#include #include void main() { int i=1; double sum=0; double pi=0,t; do{ sum=sum+1/(float)(i*i); i++;pi=sqrt(6*sum); t=pi-3.14159165;}while(fabs(t)>=1e-5);printf("%f",pi);}为何输不出东西来?错在哪里了?
求pi的近似值
#include
#include
void main()
{
int i=1;
double sum=0;
double pi=0,t;
do
{
sum=sum+1/(float)(i*i);
i++;
pi=sqrt(6*sum);
t=pi-3.14159165;
}while(fabs(t)>=1e-5);
printf("%f",pi);
}
为何输不出东西来?错在哪里了?
求pi的近似值#include #include void main() { int i=1; double sum=0; double pi=0,t; do{ sum=sum+1/(float)(i*i); i++;pi=sqrt(6*sum); t=pi-3.14159165;}while(fabs(t)>=1e-5);printf("%f",pi);}为何输不出东西来?错在哪里了?
你pi计算的公式错误.
即使累加
sum值不会超过3;
死循环;
求pi的公式应该为
pi*4=1-1/3+1/5-1/7+1/9...
程序如下
#include
#include
void main()
{
int i=1;
double sum=1;
double pi=0,t;
do
{
if(i%2==0)
sum=sum+1/(float)(2*i+1);
else
sum=sum-1/(float)(2*i+1);
i++;
pi=4*sum;
t=pi-3.14159165;
}while(fabs(t)>=1e-5);
printf("%f\n",pi);
}
可以输出pi值
精度为
1e-5