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

哪位大神可以帮我分析一下这个程序中的表达式的区别啊

宇智波鼬123 发布于 2014-07-01 20:50, 552 次点击
第一个程序:
#include<iostream>
#include<cmath>
using namespace std;
void main()
{
double a;
    cout<<"请输入一个数a";
        cin>>a;
double xnew=a;
double xold;
const double EPSTLON=1E-5;
do
{
    xold=xnew;
    xnew=(xold+a/xold)/2;
   

}while(fabs(xnew-xold)>EPSTLON);
cout<<xnew;
}
第二个程序和第一个只是在   xnew=(xold+a/xold)/2;这一处不一样,改为了    xnew=1/2*(xold+a/xold);但是结果就显示错误这是神马情况?
5 回复
#2
wp2319572014-07-02 13:47
以下是引用宇智波鼬123在2014-7-1 20:50:24的发言:

第二个程序和第一个只是在   xnew=(xold+a/xold)/2;这一处不一样,改为了    xnew=1/2*(xold+a/xold);但是结果就显示错误这是神马情况?


1/2=0 0乘以任何数都等于0
#3
stop12042014-07-02 22:51
回复 2 楼 wp231957
double型变量的除法是保留小数点的
#4
stop12042014-07-02 22:51
回复 楼主 宇智波鼬 123
把你错误的提示 给我看看.


你要什么结果?
#5
宇智波鼬1232014-07-06 16:14
明白了,1/2是等于0的。
1