#include
#include
int main()
{
int n,z=2;
n=6;
double x[123];
x[1]=n/2.0;
do
{
x[z]=(x[z-1]+n/x[z-1])/2;
printf("sqrt6=%lf",x[z]);
}
while(fabs(x[z]-x[z-1])<1e-5);
return 0;
}
#include
#include
int main()
{
int n,z=2;
n=6;
double x[123];
x[1]=n/2.0;
do
{
x[z]=(x[z-1]+n/x[z-1])/2;
printf("sqrt6=%lf",x[z]);
}
while(fabs(x[z]-x[z-1])<1e-5);
return 0;
}
1.z从头到尾没有变,应该再循环里让z自增来增加精度,
2.while条件错误,当精度满足要求是,跳出,不满足要求是继续循环,你大于小于弄反了
int main()
{
int n, z = 1;
n = 6;
double x[123];
x[1] = n / 2.0;
do
{
++z;
x[z] = (x[z - 1] + n / x[z - 1]) / 2;
printf("sqrt6=%lf\n", x[z]);
} while (fabs(x[z] - x[z - 1])>1e-5);
return 0;
}