请编写一个函数fun,它的功能是:根据以下公式求π的值(要求满足精度 0.0005, 即某项小于0.0005时停止迭代):
π 1 1×2 1×2×3 1×2×3×4 1×2×…×n
─ = 1+─+─—+────+──────+……+────────
2 3 3×5 3×5×7 3×5×7×9 3×5×…×(2n+1)
程序运行后,如果输入精度0.0005,则程序输出为3.14…。
注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#include
double fun ( double eps)
{
}
main( )
{ double x;
printf("Input eps:") ;
scanf("%lf",&x); printf("\neps = %lf, PI=%lf\n", x, fun(x));
NONO();
}
解题思路:
本题是根据公式进行计算。
参考答案:
double fun ( double eps)
{
double s=1,t=1./3;
int n=1;
while(t>=eps){ s+=t; n++; t=t*n/(2.0*n+1); }
return (s*2.0);
}
main( )
{ double x;
printf("Input eps:") ;
scanf("%lf",&x); printf("\neps = %lf, PI=%lf\n", x, fun(x));
NONO();
}
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |