首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算PI值,但未将值添加到变量中

计算PI值,但未将值添加到变量中
EN

Stack Overflow用户
提问于 2015-10-20 00:02:46
回答 4查看 152关注 0票数 3

可以使用以下公式计算PI:

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

序列越走越远,精度越高。我的代码似乎是正确的,我将这些值添加到变量pi中。然而,一旦我打印变量pi,我就只能得到零。怎么啦?

代码语言:javascript
运行
复制
#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: %ld\n", accuracy);
    printf("term\t\t pi\n");

    for(loop=1;loop<=accuracy; loop++)
    {
        if(loop%2 != 0)
        {
            pi += num/denom;
        }
        else{
            pi-= num/denom;
        }
        printf("%ld\t\t%lf\n", loop, pi);
        denom +=2.0;
    }
    return 0;

}
EN

回答 4

Stack Overflow用户

发布于 2015-10-20 00:08:52

我的C编译器在您的printf语句上给出了以下消息:

警告:格式指定类型'double‘,但参数有'long double’-Wformat类型

如果您使用%Lf而不是%lf打印pi

票数 4
EN

Stack Overflow用户

发布于 2015-10-20 01:42:11

而不是if / else来处理交替的加减:

代码语言:javascript
运行
复制
for(loop=1;loop<=accuracy; loop++)
{
    pi += num/denom;
    printf("%d\t\t%Lf\n", loop, pi);
    denom += 2.0;
    num = -num;
}
票数 1
EN

Stack Overflow用户

发布于 2016-04-15 04:51:30

longlong double中去掉。我对它进行了测试,它似乎起作用了

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33225898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档