编写程序如下,为什么只有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,然后试一下