参考代码:
#include <stdio.h>
#include <math.h>
// 定义一个宏,用于计算两个数之间的差的绝对值
#define ABS(x) ((x) > 0 ? (x) : -(x))
// 使用迭代法求平方根
double squareRoot(double a) {
double x0 = a; // 初始值为a
double x1 = (x0 + a / x0) / 2; // 根据迭代公式计算下一个近似值
// 当前后两次求出的差的绝对值大于等于0.00001时,继续迭代
while (ABS(x1 - x0) >= 0.00001) {
x0 = x1;
x1 = (x0 + a / x0) / 2;
}
return x1; // 返回最终的近似值
}
int main() {
double a;
printf("请输入一个数:");
scanf("%lf", &a); // 输入待求平方根的数
double result = squareRoot(a); // 调用函数求平方根
printf("平方根的近似值为:%.3lf\n", result); // 输出结果
return 0;
}
代码解释: 1.引入头文件 stdio.h 和 math.h,分别用于输入输出和数学库函数。 2.定义宏 ABS(x),用于计算两个数之间的差的绝对值。 3.定义函数 squareRoot,接受一个参数 a,表示待求平方根的数。 4.在函数内部,首先定义两个变量 x0 和 x1,分别表示当前和下一个近似值,初始值为 a。 5.使用迭代公式 (x0 + a / x0) / 2 计算下一个近似值 x1。 6.使用 while 循环进行迭代,当当前和下一个近似值的差的绝对值大于等于 0.00001 时,继续迭代。 7.在循环内部,更新当前近似值 x0 为下一个近似值 x1,并重新计算下一个近似值 x1。 8.当循环结束后,返回最终的近似值 x1。 9.在 main 函数中,声明变量 a,用于存储待求平方根的数。 10.使用 printf 输出提示信息,并使用 scanf 接收用户输入的数。 11.调用函数 squareRoot 求平方根,并将结果存储在变量 result 中。 12.使用 printf 输出最终的近似值,并保留3位小数。 返回0,表示程序正常结束。
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复