GumpYu 发表于 2019-2-27 20:47:22

新手的每日一问

#include <stdio.h>
#include <math.h>
int main()
{
        double sum = 1;
        int sign = -1;
        int n = 3;
        double temp;
       
       
        do
        {
                sum = sum + temp;
                temp = sign/n;
                sign = -sign;
                n += 2;
               
               
        }
        while(fabs(temp)>=1e-8);
       
      sum *= 4;
        printf("pi的近似值为%lf",sum);
       
        return 0;
}



为什么得不到正确的答案感觉像第一次循环过后就跳出循环一样。
如图:

ba21 发表于 2019-2-27 21:28:52

#include <stdio.h>
#include <math.h>
int main()
{
      double sum = 1;
      int sign = -1;
      double n = 3.0; // 浮点数除 加上 .
      double temp = 0; // temp 应该也要初始化吧。
      
      
      do
      {
                sum = sum + temp;
                temp = sign/n;
                sign = -sign;
                n += 2;
               
               
      }
      while(fabs(temp)>=1e-8);
      
      sum *= 4;
      printf("pi的近似值为%lf",sum);
      
      return 0;
}

GumpYu 发表于 2019-2-27 21:49:42

ba21 发表于 2019-2-27 21:28
#include
#include
int main()


谢谢您了{:10_298:}
页: [1]
查看完整版本: 新手的每日一问