C 库函数 - sqrt()
描述
C 库函数 double sqrt(double x) 返回 x 的平方根。
sqrt()
是 C 标准库 <math.h>
中的一个函数,用于计算一个非负数的平方根。这个函数在数学和工程中经常被使用。
声明
下面是 sqrt() 函数的声明。
#include <math.h> double sqrt(double x); float sqrtf(float x); long double sqrtl(long double x);
参数
x
:一个非负数,要计算平方根的值。
返回值
- 返回
x
的平方根。 - 如果
x
是负数,则返回 NaN,并设置errno
为EDOM
。
错误处理
- 如果
x
是负数,sqrt()
函数将返回 NaN,并设置errno
为EDOM
。
实例
下面的实例演示了 sqrt() 函数的用法。
实例
#include <stdio.h>
#include <math.h>
int main ()
{
printf("%lf 的平方根是 %lf\n", 4.0, sqrt(4.0) );
printf("%lf 的平方根是 %lf\n", 5.0, sqrt(5.0) );
return(0);
}
#include <math.h>
int main ()
{
printf("%lf 的平方根是 %lf\n", 4.0, sqrt(4.0) );
printf("%lf 的平方根是 %lf\n", 5.0, sqrt(5.0) );
return(0);
}
让我们编译并运行上面的程序,这将产生以下结果:
4.000000 的平方根是 2.000000 5.000000 的平方根是 2.236068
处理多个值的平方根
以下示例展示了如何处理多个值的平方根计算:
实例
#include <stdio.h>
#include <math.h>
#include <errno.h>
int main() {
double values[] = {16.0, 25.0, 100.0, -1.0, 0.0};
int num_values = sizeof(values) / sizeof(values[0]);
for (int i = 0; i < num_values; i++) {
double x = values[i];
errno = 0; // 重置 errno
double result = sqrt(x);
if (errno == EDOM) {
printf("Domain error: sqrt(%f) is not defined\n", x);
} else {
printf("sqrt(%f) = %f\n", x, result);
}
}
return 0;
}
#include <math.h>
#include <errno.h>
int main() {
double values[] = {16.0, 25.0, 100.0, -1.0, 0.0};
int num_values = sizeof(values) / sizeof(values[0]);
for (int i = 0; i < num_values; i++) {
double x = values[i];
errno = 0; // 重置 errno
double result = sqrt(x);
if (errno == EDOM) {
printf("Domain error: sqrt(%f) is not defined\n", x);
} else {
printf("sqrt(%f) = %f\n", x, result);
}
}
return 0;
}
让我们编译并运行上面的程序,这将产生以下结果:
sqrt(16.000000) = 4.000000 sqrt(25.000000) = 5.000000 sqrt(100.000000) = 10.000000 sqrt(-1.000000) = nan sqrt(0.000000) = 0.000000
代码解析
- 定义一个包含多个浮点数的数组
values
。 - 使用
for
循环遍历每个值,调用sqrt(x)
进行计算。 - 重置
errno
为 0 并检查可能的错误。 - 打印每个值的平方根计算结果,或错误信息。
使用场景
sqrt()
函数在许多应用中有广泛的用途,包括但不限于:
- 计算几何学中的距离。
- 计算物理学中的速度、加速度等。
- 解决与平方根相关的数学问题。
总结
sqrt()
函数用于计算非负数的平方根,是处理数学计算的重要工具。通过合理使用 sqrt()
,可以在科学计算、工程应用和数学问题中实现平方根的计算,并确保处理好可能的错误情况。