37 lines
1.1 KiB
C
37 lines
1.1 KiB
C
|
#include <stdio.h>
|
|||
|
#include <string.h>
|
|||
|
#include <math.h> // sqrt 函数
|
|||
|
|
|||
|
// 键盘输入 2 个点的坐标,计算两点之间的距离 (欧氏距离,勾股定理)
|
|||
|
// 还有一种距离叫 曼哈顿距离,两点之间的距离是两点在坐标系上的横纵坐标的距离之和
|
|||
|
// 欧式距离公式: d = sqrt((x1-x2)^2 + (y1-y2)^2)
|
|||
|
// 曼哈顿距离公式: d = |x1-x2| + |y1-y2|
|
|||
|
// gps 的距离使用的是曼哈顿距离
|
|||
|
|
|||
|
// 定义结构体
|
|||
|
struct Point
|
|||
|
{
|
|||
|
int x;
|
|||
|
int y;
|
|||
|
};
|
|||
|
|
|||
|
int main()
|
|||
|
{
|
|||
|
struct Point twoPoint[2];
|
|||
|
memset(&twoPoint[0], 0, sizeof(twoPoint));
|
|||
|
memset(&twoPoint[1], 0, sizeof(twoPoint));
|
|||
|
|
|||
|
for (int i = 0; i < 2; i++)
|
|||
|
{
|
|||
|
printf("请输入第%d个点的坐标: ", i + 1);
|
|||
|
scanf("%d %d", &twoPoint[i].x, &twoPoint[i].y);
|
|||
|
}
|
|||
|
|
|||
|
// 计算两点之间的距离
|
|||
|
// sqrt 函数在 math.h 头文件中
|
|||
|
// pow 函数在 math.h 头文件中,求幂函数,pow(x, y) 求 x 的 y 次方
|
|||
|
float d1 = sqrt(pow(twoPoint[0].x - twoPoint[1].x, 2) + pow(twoPoint[0].y - twoPoint[1].y, 2));
|
|||
|
printf("两点之间的距离是: %.2f\n", d1);
|
|||
|
|
|||
|
return 0;
|
|||
|
}
|