用c语言写一个程序:描述坐标点结构体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 11:03:32 浏览: 166
好的,以下是您所需的程序:
```c
#include <stdio.h>
#include <math.h>
struct Point {
int x;
int y;
};
int MHTDistance(struct Point pt1, struct Point pt2) {
int dx = abs(pt1.x - pt2.x);
int dy = abs(pt1.y - pt2.y);
return dx + dy;
}
double TrueDistance(struct Point pt1, struct Point pt2) {
int dx = pt1.x - pt2.x;
int dy = pt1.y - pt2.y;
return sqrt(dx*dx + dy*dy);
}
int main() {
struct Point pt1 = {1, 2};
struct Point pt2 = {4, 6};
printf("Manhattan distance: %d\n", MHTDistance(pt1, pt2));
printf("True distance: %f\n", TrueDistance(pt1, pt2));
return 0;
}
```
程序中定义了一个结构体 `Point`,包含了 `x` 和 `y` 两个成员变量,表示一个点的坐标。然后定义了两个函数 `MHTDistance` 和 `TrueDistance`,分别用来计算曼哈顿距离和直线距离。在 `main` 函数中,定义了两个点 `pt1` 和 `pt2`,并输出它们的曼哈顿距离和直线距离。
阅读全文