P138 例13.用迭代法求 x=sqrt(a),求平方根的迭代公式为
Xn+1=(Xn+a/Xn)/2,要求前后两次求出的x的差的绝对值小于10^-5
注意:x0 = a / 2;//这里x0可以取值为a,a/2,2等等都可以,不影响结果
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int main() {
float a, x0, x1;
printf("请输入a的值:");
scanf("%f", &a);
x0 = a / 2;//这里x0可以取值为a,a/2,2等等都可以
x1 = (x0 + a / x0) / 2;
do {
x0 = x1;
x1 = (x0 + a / x0) / 2;
} while (fabs(x0 - x1) >= 1e-5);
printf("%f开平方=%f", a, x1);
return 0;
}
运行结果: