已知π的近似值可由下面公式计算得出: π/4 = 1 – 1/3 + 1/5 – 1/7 ...1/(2n-1)。 给定一个精度值σ(0.000001<=σ<=1),求由上述公式计算出的前后两个π的近似值之差的绝对值小于该精度(即|πn – πn-1| <= σ)时的最小迭代步骤n(n>=2)。
#include
#include
int main()
{
double a,b=0,c=0,d=0,n=1;//a为精度,b代表前一个pi,c代表后一个pi
int i=1;
scanf("%lf",&a);
for(n=1;d>a;n++);
{
b+=1/(2n-1)i4;
i=i(-1);
c=b+1/(2*n+1)i4;
d=fabs(c-b);
}
printf("%f",n);
return 0;
}
输入a=0.1时输出为1,不清楚哪里有问题。
期望输出21
for(n=1;d>a;n++);
多了个分号,d为0,循环么有执行,直接输出了n。