现在位置: 首页 > C 教程 > 正文

C 库函数 - sqrt()

C 标准库 - <math.h> C 标准库 - <math.h>

描述

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,并设置 errnoEDOM

错误处理

  • 如果 x 是负数,sqrt() 函数将返回 NaN,并设置 errnoEDOM

实例

下面的实例演示了 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);
}

让我们编译并运行上面的程序,这将产生以下结果:

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;
}

让我们编译并运行上面的程序,这将产生以下结果:

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(),可以在科学计算、工程应用和数学问题中实现平方根的计算,并确保处理好可能的错误情况。

C 标准库 - <math.h> C 标准库 - <math.h>