用迭代法求x=a^1/2,已知求平方根的迭代运算公式为:
Xn+1=1/2*(Xn+a/Xn)。要求前后两项求出的x的差的绝对值小于10^-5。
#include <stdio.h>
#include <math.h>
int main()
{
double x1, x2;
float a;
printf("请输入a的值:");
scanf_s("%f", &a);
x2 = 1.0;
do {
x1 = x2;
x2 = (x1 + a / x1) / 2.0;
} while (fabs(x1 - x2) >= 1.0e-5);
printf("%f", x2);
return 0;
}
这个迭代法主要是用Xn去不断逼近根号a的值,然后注意绝对值函数fabs()使用前要调用一下头文件<math.h>。本题用到的是do while循环,当绝对值小于10^-5时,也即满足要求时,把符合要求的x2输出来。