c - 嵌套在循环中的公式将无法正确执行

标签 c while-loop

我正在尝试解决运行该系列的代码 pi = 4 - 4/3 + 4/5 - 4/7 + 4/9 ... 等等。问题是,当我以更高的值运行时,函数趋向于 4,而不是 3,1415...该程序似乎只运行 n 假设的最大值。另外,我无法使 %%.lflf 根据变量(p)设置小数。该算法似乎是正确的,但几天后我迫切需要任何帮助,非常感谢。

if ( 2 == route ) {
    printf("piseries calculator\n");

    double pi,n,p;

    printf("define precision");
    scanf("%lf",&p);

    n=0;

    while (n++ <= p ) {
        pi = (4) - (n * ( 4 / ( 1 + 2 *(n)))) +( n * ( 4 / ( 3 + 2 * (n))));
    }
    printf("%%.lflf",p,pi);
    return 0;
}

最佳答案

首先,使n和p为整数。

其次,n 从 3 开始不是吗?

Pi 级数的第三个是 4.0(- 分数 + 分数)...

最后,您可以使用 %.*lf printf 来增加/限制输出的精度。

 if ( 2 == route )
 {
    printf("piseries calculator\n");

    double pi=4.0;
    int n,p;

    printf("define precision");
    scanf("%d",&p);

    for(n=3;n<p;n+=2)
    {
        pi -= 4.0/n;
        n+=2;
        pi += 4.0/n;
    }
    printf("%.*lf",p,pi);
    return 0;
}

关于c - 嵌套在循环中的公式将无法正确执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46309386/

相关文章:

c# - 如何使用httpClient在没有太多请求的情况下循环通过rest api

javascript - 为什么我在使用 async-await 语法时仍然需要等待 while 循环?

python - (Python 3) imaplib 从 .txt 文件登录

linux - 逐行读入文件并在另一个文件中搜索部分匹配的行

c - 如果文件未以 sudo 打开,则系统调用 open C 无法打印文件内容

c++ - 从 C 程序调用 C++ 函数

c - LLVM为什么要分配冗余变量?

c - 如何链接包含在 C 中的库?

c - 使用灵活数组成员时正确的 malloc 大小

php - 动态构建 <th >'s and <tr>' s