以 C 语言精准测量距离183


在各种现实应用中,测量距离至关重要,例如工程、导航和机器人技术。C 语言以其高效和广泛的应用而著称,提供了强大的工具集,可用于准确计算距离。

欧几里得距离

欧几里得距离是两点之间直线距离的度量,由以下公式计算:```c
#include
double euclidean_distance(double x1, double y1, double x2, double y2) {
double dx = x2 - x1;
double dy = y2 - y1;
return sqrt(dx * dx + dy * dy);
}
```

曼哈顿距离

曼哈顿距离也称为城市块距离,它计算两点之间水平和垂直方向的距离总和:```c
double manhattan_distance(double x1, double y1, double x2, double y2) {
double dx = abs(x2 - x1);
double dy = abs(y2 - y1);
return dx + dy;
}
```

切比雪夫距离

切比雪夫距离取两点之间最大绝对差值:```c
double chebyshev_distance(double x1, double y1, double x2, double y2) {
double dx = abs(x2 - x1);
double dy = abs(y2 - y1);
return fmax(dx, dy);
}
```

海明距离

海明距离用于衡量两个字符串或二进制数之间的差异。它计算两字符串中相应位不同的数量:```c
int hamming_distance(char *str1, char *str2) {
int distance = 0;
int len = strlen(str1);
for (int i = 0; i < len; i++) {
if (str1[i] != str2[i]) {
distance++;
}
}
return distance;
}
```

举例:计算两点之间的欧几里得距离

假设我们有两个点,点 A (x1, y1) = (3, 4) 和点 B (x2, y2) = (7, 10)。使用欧几里得距离公式,我们可以计算它们之间的距离:```c
double x1 = 3;
double y1 = 4;
double x2 = 7;
double y2 = 10;
double distance = euclidean_distance(x1, y1, x2, y2);
printf("欧几里得距离:%.2lf", distance); // 输出:5.00
```

C 语言提供了强大的功能,可用于精准计算各种距离度量。通过选择适当的公式并实施高效的代码,程序员可以开发可靠的应用程序,在需要准确测量距离时发挥出色作用。

2025-02-07


上一篇:从 C 语言到其他语言的输出转换

下一篇:C 语言库函数详解