一个天下第一菜的问题
本个初学者
示pi的近似值 上116页的原题
pi/4约等于1-1/3+1/5-1/7…… 直到最后一项的绝对值小于1e-6为止
原程序如下:
#include
main()
{
int s=1;
float pi=0,t=1,n=1;
while(fabs(t)>=1e-6)
{
pi=pi+t;
n=n+2;
s=-s;
t=s/n;
}
pi=pi*4;
printf("%f\n",pi);
}
得到的结果是 3.141594
我编的代码是
#include
main()
{
int s=1;
float pi=1,t=1,n=1;
while(fabs(t)>=1e-6)
{
n=n+2;
s=-s;
t=s/n;-------------//在进行此步之前,t已经满足了fabs(t)>=1e-6条件,若再进行此步,则必满足条件,所以这个t你多加了,所以 你此处得到的结果偏大。
pi=pi+t;;----------------------------------------//这里出了问题,,此时的t虽然符合要求,但是已经扩大了它的范围
}
pi=pi*4
printf("%f\n",pi);
}
结果竟然是 3.141598
什么原因???
我是初学者请高手指点
不知道能不能说清楚。
--------------------next---------------------
阅读(1390) | 评论(0) | 转发(0) |