请结合需求设计一个结构体描述坐标点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 ) 【输入形式】输入两个点坐标: 【输出形式】 【样例输入】 1,2 8,11 【样例输出】 MHTDistance=16.00 TrueDistanc=11.40C语言完整代码
时间: 2023-12-06 22:02:32 浏览: 94
计算两个矩形之间的IOU面积和重叠率
好的,以下是完整的 C 语言代码:
```c++
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
struct Point {
int x;
int y;
};
int MHTDistance(Point pt1, Point pt2) {
return abs(pt1.x - pt2.x) + abs(pt1.y - pt2.y);
}
float TrueDistance(Point pt1, Point pt2) {
float dx = pt1.x - pt2.x;
float dy = pt1.y - pt2.y;
return sqrt(dx * dx + dy * dy);
}
int main() {
Point pt1, pt2;
char input[20];
printf("请输入两个点坐标,中间用逗号隔开:");
scanf("%s", input);
sscanf(input, "%d,%d", &pt1.x, &pt1.y);
scanf("%s", input);
sscanf(input, "%d,%d", &pt2.x, &pt2.y);
int distance1 = MHTDistance(pt1, pt2);
float distance2 = TrueDistance(pt1, pt2);
printf("MHTDistance=%.2d TrueDistance=%.2f\n", distance1, distance2);
return 0;
}
```
您可以将其复制到 C 语言环境中运行,输入两个点的坐标,即可得到曼哈顿距离和两点之间的直线距离。
阅读全文