qfedu-c-level/day12/d19.c

37 lines
1.1 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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