描述坐标点结构体Point,有成员x, y。现平面上两个点分别为(x1, y1) (x2, y2) ,请利用结构体计算输出曼哈顿距离和直线距离: 曼哈顿距离 :MHTDistance(struct Point pt1,struct Point pt2 )的描述为: |x1 - x2 | + | y1 -y2| 直线距离:TrueDistance(struct Point pt1,struct Point pt2 )的描述略 【输入形式】输入两个点坐标: 【输出形式】两个距离
时间: 2024-02-12 16:04:21 浏览: 136
通过坐标计算两点距离
好的,这里是 C++ 代码实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
struct Point {
double x, y;
};
double MHTDistance(Point pt1, Point pt2) {
return abs(pt1.x - pt2.x) + abs(pt1.y - pt2.y);
}
double TrueDistance(Point pt1, Point pt2) {
return sqrt(pow(pt1.x - pt2.x, 2) + pow(pt1.y - pt2.y, 2));
}
int main() {
Point pt1, pt2;
cin >> pt1.x >> pt1.y >> pt2.x >> pt2.y;
double mht_distance = MHTDistance(pt1, pt2);
double true_distance = TrueDistance(pt1, pt2);
cout << "曼哈顿距离:" << mht_distance << endl;
cout << "直线距离:" << true_distance << endl;
return 0;
}
```
我们定义了一个结构体 `Point`,表示平面上的一个点,包含了两个成员变量 `x` 和 `y`。`MHTDistance` 函数计算曼哈顿距离,直接使用了公式 `|x1 - x2 | + | y1 -y2|`,返回结果。`TrueDistance` 函数计算直线距离,使用了勾股定理的公式,返回结果。
在 `main` 函数中,我们通过输入获取了两个点的坐标,然后分别调用 `MHTDistance` 和 `TrueDistance` 函数计算曼哈顿距离和直线距离,并输出结果。
希望能够帮到你!
阅读全文