当前位置 : 主页 > 编程语言 > c++ >

试图计算Pi

来源:互联网 收集:自由互联 发布时间:2021-06-23
要计算Pi,您可以使用等式pi / 4 = 1-(1/3)(1/5) – (1/7)… 乘以4,你得到Pi 我创建了一个公式来计算方程相对于其位置1 /(2n-1)的每一步,并为其编写代码 #include stdio.h#include stdlib.hint main(int argc,
要计算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("%lf\n", 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 */
网友评论