注册 登录
编程论坛 C++教室

不知道错在哪儿了,运行结果很是诡异啊

zl695359890 发布于 2012-03-22 15:33, 444 次点击
/*用迭代公式求平方根*/
#include<iostream.h>
#include<math.h>
void main()
{double x,x0,m;
 x=1.0;
 m=2.0;
 do
 {x0=x;
  x=1/2*(x0+m/x0);
 }
 while(fabs((x-x0)/x)>1.0e-10);
  cout<<"The result is:"<<x<<endl;
}
各位大哥大姐, 帮我看看有什么错误啊
5 回复
#2
鹰派程序员2012-03-22 19:36
你能把题目也粘一下吗。。。。
#3
zl6953598902012-03-22 21:40
呵呵,不好意思哈。题目是:用迭代公式求平方根,x=根号下a,迭代公式是:Xn+1=1/2*(Xn+a/Xn),迭代结束条件取相对误差|((Xn+1-Xn)/Xn+1|<1.0e-10.

谢谢了哈
#4
zl6953598902012-03-23 14:49
没人给解答下嘛?
#5
yoyo_pig2012-03-23 15:35
x=1/2*(x0+m/x0);这句改成x=0.5*(x0+m/x0); 按楼主的写法,计算结果变成了:x等于1除以(2*(x0+m/x0))

#6
yoyo_pig2012-03-23 15:39
乘法比除法的优先级高
1