Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2340833
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:08:55

一个天下第一菜的问题
本个初学者 
示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) |
给主人留下些什么吧!~~