加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

试图计算Pi

发布时间:2020-12-16 09:20:35 所属栏目:百科 来源:网络整理
导读:要计算Pi,您可以使用等式pi / 4 = 1-(1/3)(1/5) – (1/7)… 乘以4,你得到Pi 我创建了一个公式来计算方程相对于其位置1 /(2n-1)的每一步,并为其编写代码 #include stdio.h#include stdlib.hint main(int argc,char** argv) { double p = 0; double pi = 0; in
要计算Pi,您可以使用等式pi / 4 = 1-(1/3)(1/5) – (1/7)…
乘以4,你得到Pi
我创建了一个公式来计算方程相对于其位置1 /(2n-1)的每一步,并为其编写代码

#include <stdio.h>
#include <stdlib.h>

int main(int argc,char** argv) 
{
    double p = 0;
    double pi = 0;
    int j = 1;

    do 
    {
        if (j % 2 == 1)
        {
            p = p + (1 / (2 * j - 1));
        }
        else
        {
            p = p - (1 / (2 * j - 1));
        }
        pi = p * 4;

        printf("%lfn",pi);

        j++;
    } while (j < 10);

    return (EXIT_SUCCESS);
}

但它只是推出4.0000
为什么?我找不到我犯的错误.

解决方法

在声明中p = p(1 /(2 * j – 1));表达式(1 /(2 * j – 1)得到整数.为了得到预期的结果,使得任一操作数为浮动类型,即1.0或(float)(2 * j – 1)

替换声明

p = p + (1 / (2 * j - 1));/* 1/(2*j-1) results in integer,you won't get expected result */

p = p + (1. / (2 * j - 1));/* 1. means making floating type */

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读