如题所述
关键在于什么时候结束循环,需要你自己根据精度需要取舍了。
#include
<stdio.h>
int
main()
{
float
fpi,ftmp;
int
i;
int
sign;
//
正负符号
i=1;
sign=1;
fpi=0.0;
do
{
ftmp=1.0/i;
fpi=fpi+4*sign*ftmp;
i=i+2;
sign
=
-sign;
}
while
(
4
*
ftmp
>
0.000001);
//当某一项小于0.000001就结束循环,这个数设置越小,精度就越高,这里精确到小数点后5位了。
//可以根据需要调整,加一个0,就增加1位精度.
printf("pi
is
:%.10f\n",fpi);
//.10表示按照10位小数显示。可以根据需要调整。
printf("i
is
:%10ld\n",i);
//这个是运算结束时i的值.
return
0;
}
#include
<stdio.h>
int
main()
{
float
fpi,ftmp;
int
i;
int
sign;
//
正负符号
i=1;
sign=1;
fpi=0.0;
do
{
ftmp=1.0/i;
fpi=fpi+4*sign*ftmp;
i=i+2;
sign
=
-sign;
}
while
(
4
*
ftmp
>
0.000001);
//当某一项小于0.000001就结束循环,这个数设置越小,精度就越高,这里精确到小数点后5位了。
//可以根据需要调整,加一个0,就增加1位精度.
printf("pi
is
:%.10f\n",fpi);
//.10表示按照10位小数显示。可以根据需要调整。
printf("i
is
:%10ld\n",i);
//这个是运算结束时i的值.
return
0;
}
温馨提示:答案为网友推荐,仅供参考