请结合需求设计一个结构体描述坐标点Point,有成员x, y,表示其坐标。现平面上两个点分别为(x1, y1) (x2, y2) ,其中 x1, y1, x2, y2设为整数。请设计函数计算: 1、曼哈顿距离 MHTDistance的定义为: |x1 - x2 | + | y1 -y2| 2、两点之间的直线距离float TrueDistance(struct Point pt1,struct Point pt2 )
时间: 2024-02-12 10:10:03 浏览: 74
通过坐标计算两点距离
好的,根据您的需求,我可以为您设计以下的结构体和函数:
```c++
struct Point {
int x;
int y;
};
int MHTDistance(struct Point pt1, struct Point pt2) {
return abs(pt1.x - pt2.x) + abs(pt1.y - pt2.y);
}
float TrueDistance(struct Point pt1, struct Point pt2) {
return sqrt(pow(pt1.x - pt2.x, 2) + pow(pt1.y - pt2.y, 2));
}
```
上面的结构体中,我们定义了一个名为 Point 的结构体,它包含了两个成员变量,分别为 x 和 y,表示该点的横纵坐标。
接下来,我们定义了两个函数,分别为 MHTDistance 和 TrueDistance。其中,MHTDistance 函数计算的是曼哈顿距离,其定义为 |x1 - x2| + |y1 - y2|,返回值为 int 类型;TrueDistance 函数计算的是两点之间的直线距离,其公式为 sqrt((x1 - x2)^2 + (y1 - y2)^2),返回值为 float 类型。
希望以上代码能够满足您的需求,如果您还有其他问题或需求,请继续提出。
阅读全文