#include <stdio.h>
#include <math.h>
int main()
{
double a, x0, x1; // 定义非负实数a和迭代初值x0,以及迭代结果x1
scanf("%lf %lf", &a, &x0); // 从键盘输入a和x0
if (a < 0) // 如果a是负数,输出错误信息并退出程序
{
printf("输入错误,a必须是非负实数。\n");
return 0;
}
do
{
x1 = (x0 + a / x0) / 2; // 根据迭代公式计算x1
if (fabs(x1 - x0) < 1e-5) // 如果前后两次求出的x的差的绝对值小于10-5,跳出循环
{
break;
}
x0 = x1; // 否则,将x1赋值给x0,继续迭代
} while (1);
printf("%.6lf\n", x1); // 输出平方根,保留6位小数,末尾换行
return 0;
}
输入一个非负实数a,用迭代法求平方根