算圆周率答案不对总是差一点或者什么也没有

#include
#include
int main()
{
float PI;
int x,n;
x=3;
n=1;
PI=1;
do
{
PI+=pow(-1,n)/x;
x=x+2;
n++;
}while(1.0/x>1e-8);
printf("PI=%7.5f\n",4.0*PI);
return 0;
}

回答:你这是用泰勒逼近计算对吧,你的精度定的太高,计算机计算需要一些时间,代码是没问题的

img

#include <stdio.h>
#include <math.h>

int main()
{
    float PI;
    int x, n;
    x = 3;
    n = 1;
    PI = 1;
    do
    {
        PI += pow(-1, n) / x;
        x = x + 2;
        n++;
    } while (1.0 / x > 1e-8);
    printf("Over\n");
    printf("PI=%7.5f\n", 4.0 * PI);
    return 0;
}