阴天搁浅的航 2021-11-12 22:10 采纳率: 71.4%
浏览 12
已结题

输出PI的近似值,为什么一直输出同一个值4

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
    double pi = 0;
    long i;
    long n;
    cout << "Enter the value of n: ";
    cin >> n;
    cout << endl;
    for (i = 0; i < n; i++)
    {
        if (i % 2 == 0||i == 0)
        {
            pi = pi + (1 / (2 * i + 1));
        }
        else
        {
            pi = pi - (1 / (2 * i + 1));
        }
    }
    pi = 4 * pi;
    cout << endl << "pi = " << pi << endl;
    return 0;
}

  • 写回答

1条回答 默认 最新

  • 从善若水 5G/6G通信领域优质创作者 2021-11-12 22:19
    关注

    因为你的(1 / (2 * i + 1))是整数运算,当i=0是为1,之后一直是0;

    pi = 4 * pi;
    

    最后pi就是4

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月20日
  • 已采纳回答 11月12日
  • 创建了问题 11月12日