求教有关C语言,输入一个精度 eps,用莱布尼茨公式,估算 Pi 值
莱布尼茨公式:http://zh.
代码如下,程序可以运行,但是输入任意精度,输出的pi值都是0.767116.. 初学者求教。。
#include <stdio.h>
double eps; //精度
double sum=0.0; //最终输出的pi值
double pi (double eps,double sum)
{
double numerator=1.0; //分子
double denominator=1.0; //分母
double summand =0.0; //被加数
double sign=1.0; //符号
do {
summand= numerator/denominator;
sum=sum+summand*sign;
sign=sign*(-1);
denominator=2*denominator+1;
}
while(eps<summand);
return sum;
}
int main()
{
printf("please enter the precision of pi:\n");
scanf("%lf",&eps);
sum=4*sum;
printf("Approximation of pi is %lf\n",pi(eps,sum));
return 0;
}