首页 > 编程笔记

C语言hypot():计算直角三角形的斜边长

hypot() 是 C语言的一个标准库函数,定义在<math.h>头文件中。

hypot() 函数用于计算直角三角形的斜边长度,原型如下:
double hypot(double x, double y);

参数

x 和 y 是直角三角形的两个直角边的长度。

返回值

返回两个直角边对应的斜边长度。

如果计算的结果值超出了 double 类型所能表示的范围,函数能会返回HUGE_VAL

hypot() 函数提供了一种数值稳定的方式来计算斜边长度,不直接使用勾股定理的一般形式,从而避免因下溢或溢出而导致的不精确计算。尤其是当直角边的长度可能非常大或非常小的时候,hypot() 函数也可以提供更精确的结果。

【实例】以下的 C 语言代码示例计算了不同直角三角形的斜边长度,并将结果打印出来。
#include <stdio.h>
#include <math.h>

int main() {
  double sides[][2] = {
    {3.0, 4.0},
    {5.0, 12.0},
    {8.0, 15.0}
  };
  double result;

  for(int i = 0; i < 3; i++) {
    result = hypot(sides[i][0], sides[i][1]);
    printf("For sides %.2f and %.2f, the hypotenuse is: %.2f\n", sides[i][0], sides[i][1], result);
  }

  return 0;
}
输出结果为:

For sides 3.00 and 4.00, the hypotenuse is: 5.00
For sides 5.00 and 12.00, the hypotenuse is: 13.00
For sides 8.00 and 15.00, the hypotenuse is: 17.00

例子中展示了 hypot() 函数如何计算不同直角三角形的斜边长度。

再次强调,我们可以自行使用普通的勾股定理来计算这些值,但 hypot() 函数在数值稳定性方面可能会更优秀。

推荐阅读