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