标题
输入样例:
2.0
输出样例:
1.414214
代码:
#include <stdio.h>
#include <math.h>
// 主函数
int main() {
double x1, x2; // 定义两个双精度浮点数变量用于迭代计算
float a; // 定义一个单精度浮点数变量用于存储用户输入的值
// 从标准输入读取一个浮点数值并赋值给变量a
scanf("%f", &a);
// 初始猜测值 x1 为输入值的一半
x1 = a / 2;
// 使用初始猜测值计算第二个猜测值 x2
x2 = (x1 + a / x1) / 2.0;
// 无限循环用于迭代计算平方根
for (;;) {
// 将当前猜测值 x2 赋值给 x1
x1 = x2;
// 根据迭代公式计算新的猜测值 x2
x2 = (x1 + a / x1) / 2.0;
// 如果两次猜测值之差的绝对值小于指定的阈值,则认为已经收敛
if (fabs(x1 - x2) < 1e-5) {
// 打印最终计算结果 x2
printf("%f", x2);
// 退出无限循环
break;
}
}
// 返回0表示程序正常结束
return 0;
}