需要利用迭代法求实数a的平方根近似值,我不知道我的这个哪里出了问题。

img


利用迭代法求实数a的平方根近似值,公式是x1=(x0+a/x0)/2,我不知道我这个代码是哪里出了问题,求解。

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    double x0,x1;
    double a;
    cout<<"请输入实数a"<<endl;
    cin>>a;
    if(a<0)
    {
        return 0;
    }
    else if(a>0)
    {   
        x0 = x1 = a/2;
        do{
            x0 = x1; //更新x0
            x1 = (x0+a/x0)/2;
        } while(fabs(x1-x0)>1.0E-5);//条件不满足继续执行循环体
    }
    else
    {
        x1 = 0.0;
    }
    cout<<"实数a的平方根的近似值为:"<<x1<<endl;
    return 0;
}