Llllln 发表于 2020-7-14 16:59:17

求pi的近似值

根据pi/4≈1-1/3+1/5-1/7+…求pi的近似值。


#include <stdio.h>
int main()
{
        int i, sign = 1;
        double s = 0;
        for (i = 1;i<1000000; )
        {
                s = s + sign / i;
                sign = -sign;            
                i = i + 2;
        }
        printf("pi=%lf", 4 * s);
        return 0;
}

想问一下大家这个程序对不对?运行结果为4,不管for循环的条件中1000000改成什么数结果都为4,不知道这是怎么回事?

sunrise085 发表于 2020-7-14 17:04:50

帮你修改了,并做了解释。int和int相除结果仍为int
#include <stdio.h>
int main()
{
      int i;
      double s = 0, sign = 1;//把sign写在这里
      for (i = 1;i<1000000; )
      {
                s = s + sign / i;//若sign为int,那这里sign/i将会一直为0
                sign = -sign;            
                i = i + 2;
      }
      printf("pi=%lf", 4 * s);
      return 0;
}

Llllln 发表于 2020-7-14 17:07:12

sunrise085 发表于 2020-7-14 17:04
帮你修改了,并做了解释。int和int相除结果仍为int

非常感谢!
页: [1]
查看完整版本: 求pi的近似值