qfedu-c-level/day12/d19.c

37 lines
1.1 KiB
C
Raw Normal View History

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