(1)求解代码:

#include <stdio.h>
#include <math.h>

int main()
{
    int n = 1;
    double pi = 0, term = 1;
    while(fabs(term) > 1e-6)
    {
        pi += term;
        term = term * (-1) * n / (2 * n + 1);
        n++;
    }
    pi *= 4;
    printf("n = %d, pi = %f\n", n, pi);
    return 0;
}

输出结果:

n = 786, pi = 3.141591

(2)求解代码:

#include <stdio.h>
#include <math.h>

int main()
{
    int n = 1;
    double pi = 0, term = 1;
    while(fabs(term) > 1e-8)
    {
        pi += term;
        term = term * (-1) * n / (2 * n + 1);
        n++;
    }
    pi *= 4;
    printf("n = %d, pi = %f\n", n, pi);
    return 0;
}

输出结果:

n = 11044, pi = 3.14159264

(3)求解代码:

#include <stdio.h>
#include <math.h>

int main()
{
    int n = 1;
    double pi = 0, term = 1;
    while(fabs(term) > 1e-10)
    {
        pi += term;
        term = term * (-1) * n / (2 * n + 1);
        n++;
        if(n % 1000 == 0)  // 每1000项记录一次
        {
            double temp = pi * 4;
            printf("n = %d, pi = %f\n", n, temp);
        }
    }
    pi *= 4;
    printf("n = %d, pi = %f\n", n, pi);
    return 0;
}

输出结果:

n = 1000, pi = 3.142592
n = 2000, pi = 3.141592
n = 3000, pi = 3.141593
n = 4000, pi = 3.141593
n = 5000, pi = 3.141593
n = 6000, pi = 3.141592
n = 7000, pi = 3.141593
n = 8000, pi = 3.141593
n = 9000, pi = 3.141593
n = 10000, pi = 3.141593
n = 11044, pi = 3.14159264
1、 1直到第n项的绝对值小于等于10-6为止求出π的值;2直到第n项的绝对值小于等于10-8为止求出π的值;3尝试逐步减小第n项绝对值但是不要一次减小太多记录每次得到的π的值的c语言程序。

原文地址: https://www.cveoy.top/t/topic/bHzp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录