参考代码:
#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 人评分
A+B for Input-Output Practice (VII) (C++代码)浏览:643 |
最长单词 (C语言代码)浏览:1474 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:616 |
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:943 |
C二级辅导-等差数列 (C语言代码)浏览:891 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:660 |
WU-C语言程序设计教程(第三版)课后习题12.3 (C++代码)浏览:925 |
小O的数字 (C++代码)浏览:806 |
1073题解浏览:652 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:584 |