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

大神帮我看一下2个程序写法有什么区别?

downeychou 发布于 2013-11-16 09:36, 356 次点击
这是牛顿迭代法求:x=更号a
#include <iostream>
#include <cmath>
using namespace std;
int main()
{ float x0,x1,a;
cin>>a;
x0=a/2;
x1=(x0+a/x0)/2;
while (fabs(x0-x1)>=1e-5)
{x0=x1;
    x1=(x0+a/x0)/2;
}
cout<<x0<<endl;
return 0;
}

为什么第11行的 x1=(x0+a/x0)/2;  变为x1=(1/2)*(x0+a/x0);后程序功能无法实现了呢?
或者是第8行的 x1=(x0+a/x0)/2;变成x1=(1/2)*(x0+a/x0);也无法实现了呢?
2 回复
#2
rjsp2013-11-16 10:21
1/2 等于 0,幼儿园的小朋友都知道
1.0/2.0 等于 0.5,这个就要上了小学二年级才能知道
#3
downeychou2013-11-16 10:24
回复 2楼 rjsp
。我还在上幼儿园。
谢谢啦
1