You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何C++程序中pi变量无法随循环更新?

你的π近似程序问题分析与修复

核心问题1:整数除法导致计算无意义

你代码里的1 / denominator是整数除法——因为1和denominator都是int类型,当denominator大于1时,结果直接取整为0。不管是加还是减0,pi的值自然不会变化。

解决方法很简单,把1改成1.0(变成浮点数),或者把denominator强制转换为double:

// 两种写法选其一即可
pi -= (1.0 / denominator);
// 或者
pi -= (static_cast<double>(1) / denominator);

核心问题2:循环条件语法错误

你的循环条件i <+ k是笔误,应该是i <= k或者i < k,否则编译都通不过。具体选哪个取决于你想要的迭代次数。

修复后的完整代码示例

#include <iostream>
using namespace std;

int main() {
    int k = 10000; // 这里可以自定义迭代次数
    double pi = 1;
    for (int i = 0; i <= k; i++){
        int denominator = (i * 2) + 3;
        if (i % 2 == 0){
            pi -= (1.0 / denominator);
        } else {
            pi += (1.0 / denominator);
        }
    }
    
    pi *= 4;
    cout << "Approximation of pi is " << pi << endl;
    return 0;
}

内容的提问来源于stack exchange,提问作者Everett Vetos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 18:16:07