编写程序,它的功能是:应用迭代算法求a的平方根,求a的平方根的迭代公式如下:x1=1/2(x0+a/x0),例如a为2是,平方根值为:1.414214

编写程序如下,为什么只有4、9、16......这样类型的才能出来结果呢?哪里出错了?
#include
#include
main()
{
float a;
float x0,x1;
scanf("%f",&a);
x0=a / 2;
x1=(x0+a/x0)/2;
do
{
x1=x0;
x1=(x0+a/x0)/2;
}
while(fabs(x1 - x0) >= 1e-5);
printf("%.5f",x1);
return 0;
}

do里面 x1 = x0 改成 x0 = x1,你这不重新赋值怎么实现功能

你将float改为double,并把 1e-5改为1e-3,然后试一下