请结合需求设计一个结构体描述坐标点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.40
时间: 2023-12-06 17:02:32 浏览: 122
读取点的坐标,计算方位角和距离并输出
好的,根据您的需求,这里给出相应的结构体和函数设计:
```c++
#include <cmath>
// 定义点的结构体
struct Point {
int x;
int y;
};
// 计算曼哈顿距离
int MHTDistance(Point p1, Point p2) {
return abs(p1.x - p2.x) + abs(p1.y - p2.y);
}
// 计算两点之间的直线距离
float TrueDistance(Point p1, Point p2) {
int dx = p1.x - p2.x;
int dy = p1.y - p2.y;
return sqrt(dx * dx + dy * dy);
}
```
使用样例:
```c++
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main() {
// 读入两个点的坐标
string input;
getline(cin, input);
stringstream ss(input);
int x1, y1, x2, y2;
char comma;
ss >> x1 >> comma >> y1 >> x2 >> comma >> y2;
// 构造两个点
Point p1 = {x1, y1};
Point p2 = {x2, y2};
// 计算曼哈顿距离和两点之间的直线距离
int mhtDist = MHTDistance(p1, p2);
float trueDist = TrueDistance(p1, p2);
// 输出结果
printf("MHTDistance=%.2f TrueDistanc=%.2f", (float)mhtDist, trueDist);
return 0;
}
```
输出结果:
```
MHTDistance=16.00 TrueDistanc=11.40
```
阅读全文