鱼C论坛

 找回密码
 立即注册
查看: 807|回复: 3

[已解决]求pi的问题

[复制链接]
发表于 2020-4-7 23:26:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
据以下已知公式求 Pi 的近似值,要求正确计算出小数点后前 7 位(即3.1415926)

#include<stdio.h>
int main()
{
        int i;
        double pi,a;
        for(i=1;i<=100;i++)
        {
                if(i%2)
                {
                        a=i;
                        pi=pi+1/(a*2-1);
                }
                if(!(i%2))
                {
                        a=i;
                        pi=pi-1/(a*2-1);
                }
        }
        pi=pi*4.0;
        printf("pi=%.7f\n",pi);
        return 0;
}

pi=3.1315929
最佳答案
2020-4-8 09:21:40
问题在于你的循环次数太少了。
另外,pi没有赋初值,两个if可以合并的。
#include<stdio.h>
int main()
{
    long i,t=-1;
    double pi=0,a;
    for(i=1;i<=10000000;i++)
    {
        a=i;
        t*=-1;
        pi=pi+t/(a*2-1);
    }
    pi=pi*4.0;
    printf("pi=%.7f\n",pi);
    return 0;
}
033142z95n4rht2sr4s35m.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-8 06:49:47 From FishC Mobile | 显示全部楼层
所以呢?你的问题呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-8 08:17:02 | 显示全部楼层
pi请初始化为0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-8 09:21:40 | 显示全部楼层    本楼为最佳答案   
问题在于你的循环次数太少了。
另外,pi没有赋初值,两个if可以合并的。
#include<stdio.h>
int main()
{
    long i,t=-1;
    double pi=0,a;
    for(i=1;i<=10000000;i++)
    {
        a=i;
        t*=-1;
        pi=pi+t/(a*2-1);
    }
    pi=pi*4.0;
    printf("pi=%.7f\n",pi);
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 12:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表