阴天搁浅的航 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日

悬赏问题

  • ¥200 PDF使用虚拟列表技术做渲染和加载带来的问题
  • ¥15 出现报错Debug Assertion Failed,如何解决?
  • ¥50 mcf中怎么实现导入的图片变成透明
  • ¥15 ruoyi-flowable流程设计配置的表单时,级联选择如何配置
  • ¥20 金属玻璃的剪切局部化程度怎么用ovito表示出来
  • ¥15 自定义控件在中文模式下不能输入数字
  • ¥15 关于#运维#的问题:用mail.abc.com 端口9696的方式同样能访问hr.abc.com 端口:6080 的页面两个网址都指向同一个外网ip(相关搜索:服务器)
  • ¥15 xgboost建模输出结果由三分类变成四分类
  • ¥15 Windows X86 远线程注入问题解惑
  • ¥15 Vs2022安装时黑框闪退无反应