请用C语言设计以下内容:描述坐标点结构体Point,有成员x, y。现平面上两个点分别为(x1, y1) (x2, y2) ,请利用结构体计算输出曼哈顿距离和直线距离:
时间: 2024-02-12 16:04:24 浏览: 130
manhattan-distance:计算两个数组之间的曼哈顿(城市街区)距离
以下是C语言代码实现:
```c
#include <stdio.h>
#include <math.h>
// 定义坐标点结构体
typedef struct {
int x;
int y;
} Point;
// 计算曼哈顿距离
int manhattan_distance(Point p1, Point p2) {
return abs(p1.x - p2.x) + abs(p1.y - p2.y);
}
// 计算直线距离
float line_distance(Point p1, Point p2) {
return sqrt(pow(p1.x - p2.x, 2) + pow(p1.y - p2.y, 2));
}
int main() {
// 初始化两个点的坐标
Point p1 = {1, 2};
Point p2 = {4, 6};
// 计算曼哈顿距离并输出
int manhattan = manhattan_distance(p1, p2);
printf("曼哈顿距离为:%d\n", manhattan);
// 计算直线距离并输出
float line = line_distance(p1, p2);
printf("直线距离为:%f\n", line);
return 0;
}
```
运行结果:
```
曼哈顿距离为:7
直线距离为:5.000000
```
阅读全文