P002 求π的值

03-程序设计题 飞快学 1305浏览

所属年份:2010.9;2012.3
编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。

P002

程序运行后,若输入精度0.0005,则程序应输出为3.14…。

#include <stdio.h>
#include <math.h>
double  fun ( double  eps)
{

}

int main( )
{
    double  x;
    printf("Input eps:") ;
    scanf("%lf",&x);
    printf("\neps = %lf, PI=%lf\n", x, fun(x));
    return 0;
}

【参考答案】

double  fun ( double  eps)
{
    double s=1.0, t=1.0;
    int n=1;
    while(s1>=eps)
    {
        t = t*n/(2*n+1);
        s = s+t;
        n++;
    }
    return 2*s;
}

本题也可以使用 for 循环

double fun ( double  eps)
{
    double s = 1, t=1;
    int i;
    for (i=1; t>=eps; i++)
    {
        t = t * i/(2*i+1);
        s = s + t;
    }
    return 2*s;
}