老牛来学习 发表于 2020-3-30 18:12:26

C语言!

本帖最后由 老牛来学习 于 2020-3-30 19:12 编辑

下面pi函数的功能是根据以下的公式,返回满足精度eps要求的π值。


但是按照底下的正确答案推的话,那个3/7*3/7那里不应该变成3/7*4/9吗?

double pi(double eps)
{
        double s = 0.0, t = 1.0;
        int n;
        for(n = 1; t> eps; n++)
        {
                s += t;
                t = n * t / (2 * n + 1);
        }
        return (2.0 * (s+t));
}

4goodworld 发表于 2020-3-30 21:58:30

我百度了好像是应该四分之九
π/2=1+1/3+1/3*2/5+1/3*2/5*3/7+1/3*2/5*3/7*4/9+
可能是你学习的书籍印刷错误了

风吹来了 发表于 2020-3-31 08:58:59

这个是书上错了,很正常的情况,我学的《C Primer Plus》有些地方也会有印刷错误,这些错误可能是翻译的时候没看到或者是原著就有的错误,这种情况要收集多方面资料才能确定,我百度,360还有其他论坛帮你问了一下,的确是书上错了
页: [1]
查看完整版本: C语言!