c语言求π近似值?????

运行之后是1.000000000000,怎么回事呢?图片图片

ffff是int,i也是int,算的结果也是int,所以变成了1

是你计算的时候转成float
改成sum = sum + ffff * 1.0 / i;
就可以了

另外,

 if ((i-1)%4==0)

应该是

 if ((i-1)%2==0)

最后的结果要乘以4,才是pi.

给您参考:

 #include<stdio.h>

int main()
{
  long int i,fm,n=19999;
  double sum,pi;

  sum=1.0;
  i=1;
  fm=1;

  printf("Please wait. ");
  while (--n) {
    fm+=2;
    if(i%2){
        //printf("-1/%d",fm);
        sum=sum-1.0/fm;
        }
    else {
        //printf("+1/%d",fm);
        sum=sum+1.0/fm;
        }
    i++;
  }

  pi=4*sum;
  printf("=%f",pi);
  return 0;
}