#include
int main(void)
{
double pi = 0.0f, x = 0.0f, y = 0.0f, d = 0.0f; int i = 0, j = 0, k = 0;
do {
j = i + 1; /*求第一项分母*/
k = j + 2; /*求第二项分母*/
x = j;/*转化为浮点数*/
y = k;/*转化为浮点数*/
x = 1.0f / x;/*求第一项*/
y = 1.0f / y;/*求第二项*/
d = x - y;/*求两项差*/
pi += d;/*累加到π*/
i += 4;/*进行下一项*/
}while(x > 1e-6); /*直到某一项差绝对值小于目标误差*/
printf("π = %9.8f\n", pi * 4.0f);
return 0;
}
运行结果为:
π = 3.14159065
#include
#include
#define eps(a) fabs(1.0 / a) //定义精度
int main (){
double pi = 0, n1;
int j = 0; //符号计数
for (int i = 1; eps(i) > 1E-6; i += 2){
if (j % 2) { //偶数项为负数
n1 = - 1.0 / i;
}else n1 = 1.0 / i; //奇数项为正数
pi += (n1); //累加得到π / 4
j ++;
}
printf("PI=%10.8f\n", 4.0 * pi); //输出π
return 0;
}
# include
main()
{
int s;
float n,t,pi;
t=1'pi=0,n=1.0,s=1;
while((fabs(t))>1e-6)
{
pi=pi t;
n=n 2;
s=-s;/*这一步是什么意思难道是使得式子交替正和负如果把s=-s改成-s=s会有什么后果*/
t=s/n;
}
pi=pi*4;
printf("pi=.6f\n",pi);
}