计算PI的值,但值没有被添加到变量中

Calculating the value of PI but values are not being adding to variable

本文关键字:添加 变量 的值 PI 计算      更新时间:2023-10-16

PI的计算公式如下:

π = 4 -4/3 +4/5 -4/7 +4/9 -4/11 ....

序列越深入,精度越高。我的代码似乎是正确的,我将值添加到变量pi。然而,一旦我打印变量pi,我只得到零。怎么了?

#include <stdio.h>
int main()
{
    long double pi =0.0;
    long double num= 4.0;
    long double denom= 1.0;
    long int loop;
    long int accuracy;
    accuracy= 400000;
    printf("Accuracy set at: %ldn", accuracy);
    printf("termtt pin");
    for(loop=1;loop<=accuracy; loop++)
    {
        if(loop%2 != 0)
        {
            pi += num/denom;
        }
        else{
            pi-= num/denom;
        }
        printf("%ldtt%lfn", loop, pi);
        denom +=2.0;
    }
    return 0;
}

我的C编译器在你的printf语句中给出了这个消息:

警告:format指定了'double'类型,但参数有类型'long double' [-Wformat]

也许如果你使用%Lf而不是%lf来打印pi ?

代替if/else来交替处理加减法:

for(loop=1;loop<=accuracy; loop++)
{
    pi += num/denom;
    printf("%dtt%Lfn", loop, pi);
    denom += 2.0;
    num = -num;
}

long double中删除long。我测试了一下,它似乎可以工作

你需要用它做一个合适的else if()

for (int loop=1; loop<=accuracy; loop++) {
    if(loop%2 != 0)
      {
        i++;
        if (i%2==0)
          pi += num/denom;
        else
          pi -= num/denom;
      }
    denom++;
}