| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 828 人关注过本帖
标题:迭代法求平方根为什么不对
取消只看楼主 加入收藏
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
快速回复:迭代法求平方根为什么不对
数据加载中...
 
   



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

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