标题:迭代法求平方根为什么不对
取消只看楼主
zqb7899
Rank: 4
等 级:业余侠客
帖 子:159
专家分:238
注 册:2009-10-16
结帖率:100%
已结贴  问题点数:20 回复次数:1 
迭代法求平方根为什么不对
如下:
#include<stdio.h>
#include<math.h>

void main()
{
 double x0,x1,n;
 scanf("%f",&n);
 x0=n/2;
 x1=(x0+n/x0)/2;
 do
   {
   x0=x1;
   x1=(x0+n/x0)/2;
   }
 while(fabs(x1-x0)>=1e-5);
 printf("%f",x1);
 getch();
}
我用WINTC编译,输入2,输出0.000008.
把double改为float就对了。为什么double不行。
搜索更多相关主题的帖子: 平方根 迭代法 
2009-11-08 14:22
zqb7899
Rank: 4
等 级:业余侠客
帖 子:159
专家分:238
注 册:2009-10-16
得分:0 
呵呵 是我太粗心了
楼上正确
不过最后,书上说双精度数也可用%f输出。又有一个问题:双精度度用%f输出和%lf输出有区别吗?好像没有区别。
printf("%f",x1);
2009-11-08 14:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-291478-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 2.609061 second(s), 10 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved