为什么pi的值不对呢c语言

img

img


哪里有问题啊?我感觉写的没问题,但是答案中有一个数字不对……

int/int结果还是int呀 ,需要转化下改成1.0/i

img

img

#include  <math.h>
#include <stdio.h>
main()
{int i;
float pi,sign=1,sum=0 ;
for (i=1; 1.0/i>=1e-4; i+=2){
sum+=sign/i ;
sign=-sign;
pi=4*sum;
}
printf ( "pi=%10.6f\n",pi);
return 0;

}

供参考:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i = 1;
    float pi,sign=1,sum=0;
    while (1.0/i > 1e-4) //for (i = 1;;i+=2)
    {
        sum += sign*1.0/i;
        sign = -sign;
        i+=2;
    }
    pi = 4.0*sum;
    printf("pi=%10.6f",pi);
    return 0;
}