第1个回答 2012-07-03
只要满足(x0-x1)>1e-5条件的情况下,x1可以随便取值,x0的值在此题中是不断变化的,最后(x0-x1)>1e-5的时候程序就停止。这道题也可以用for语句来实现;
float a,i,x0,x1; x0=1;
x1=(x0+a/x0)/2;
for(i=1;i>=1;i++)
{
x0=x1;
x1=(x0+a/x0)/2;
if((x0-x1)<1e-5)
break;
}
第3个回答 2012-03-25
#include<stdio.h>
#include<math.h>
void main()
{ float a,x0,x1;
printf(“enter a positive number:”);
scanf(“%f”,&a);
x0=a/2;
x1=(x0+a/x0)/2;
do
{x0=x1;
x1=(x0+a/x0)/2;
}while(fabs(x0-x1)>=1e-5);
printf(“The square root of %5.2f is %8.5f\n”,a,x1);
}
第4个回答 推荐于2018-04-30
#include<stdio.h>
#include<math.h>
void main()
{
float a,x0,x1;
scanf("%f",&a);
x0=a/2;
x1=(x0+a/x0)/2;
do{
x0=x1;
x1=(x0+a/x0)/2;
}while(fabs(x0-x1)>1.0e-5);
printf("%.5f",x1);
}本回答被网友采纳