所属年份:2010.9;2012.3
编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。
程序运行后,若输入精度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; }