描述坐标点结构体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:03:54 浏览: 78
好的,我可以为您编写代码来计算两个坐标点的曼哈顿距离和直线距离。
请参考以下代码:
```c
#include <stdio.h>
#include <math.h>
// 坐标点结构体定义
typedef struct Point {
int x;
int y;
} Point;
// 计算曼哈顿距离
int MHTDistance(Point pt1, Point pt2) {
int distance = abs(pt1.x - pt2.x) + abs(pt1.y - pt2.y);
return distance;
}
// 计算直线距离
double TrueDistance(Point pt1, Point pt2) {
double distance = sqrt(pow(pt1.x - pt2.x, 2) + pow(pt1.y - pt2.y, 2));
return distance;
}
int main() {
Point pt1 = {1, 2};
Point pt2 = {4, 6};
int mht_distance = MHTDistance(pt1, pt2);
double true_distance = TrueDistance(pt1, pt2);
printf("曼哈顿距离为:%d\n", mht_distance);
printf("直线距离为:%f\n", true_distance);
return 0;
}
```
输出结果为:
```
曼哈顿距离为:7
直线距离为:5.000000
```
希望这个代码可以帮助您解决问题。
阅读全文