请编写一个函数fun,它的功能是:根据以下公式求π的值(要求满足精度0.0005,即某项小于0.0005时停止迭代):
程序运行后,如果输入精度0.0005,则程序输出为3.140578。
#include <stdio.h>
#include <math.h>
double fun ( double eps)
{
}
main( )
{ double x;void NONO ();
printf("Input eps:") ;
scanf("%lf",&x); printf("\neps = %lf, PI=%lf\n", x, fun(x));
NONO();
getchar();
}
1.分析题目得知该程序需要在满足要求的情况下持续循环,所以选择使用while函数。
2.定义整型函数变量,n为循环的计数,与题目图片中的“ n ”一致。
3.定义双精浮点数的one(题目中的数字1),up(分子),down(分母),PI(输出结果)
5.“ PI += one; ”必须在“ one = up/down; ” 的上面,该代码意为下图每个小式子相加的结果。若“ one = up/down; ”不满足条件时程序会终止,式子顺序错误会把不满足条件的值一同计入结果。
4.按照题目编写代码如下
#include <stdio.h>
#include <math.h>
double fun ( double eps)
{
int n=0;
double one,up = 1,down = 1,PI = 0;
one = up/down;
while(one >= eps){
n++;
up = up*n;
down = down*(2*n+1);
PI += one;
one = up/down;
}
return PI*2;
}
main( )
{ double x;void NONO ();
printf("Input eps:") ;
scanf("%lf",&x); printf("\neps = %lf, PI=%lf\n", x, fun(x));
NONO();
getchar();
}
标签:lf,down,01,double,up,C语言,---,eps,PI
From: https://blog.csdn.net/fnd_LN/article/details/145168137