描述坐标点结构体Point,有成员x, y。现平面上两个点分别为(x1, y1) (x2, y2) ,请利用结构体计算输出曼哈顿距离和直线距离:
时间: 2024-02-12 22:04:28 浏览: 90
好的,以下是 C 语言的实现:
```c
#include <stdio.h>
#include <math.h>
// 定义坐标点结构体 Point
typedef struct {
double x;
double y;
} Point;
int main() {
// 读入两个点的坐标
Point p1, p2;
printf("Please enter the coordinates of point 1 (x y): ");
scanf("%lf %lf", &p1.x, &p1.y);
printf("Please enter the coordinates of point 2 (x y): ");
scanf("%lf %lf", &p2.x, &p2.y);
// 计算曼哈顿距离
double manhattan_distance = fabs(p1.x - p2.x) + fabs(p1.y - p2.y);
printf("The Manhattan distance between the two points is: %lf\n", manhattan_distance);
// 计算直线距离
double line_distance = sqrt(pow(p1.x - p2.x, 2) + pow(p1.y - p2.y, 2));
printf("The line distance between the two points is: %lf\n", line_distance);
return 0;
}
```
这个程序的实现思路是,首先定义一个坐标点结构体 Point,包含两个成员变量 x 和 y,用来表示点的横纵坐标。然后,从标准输入中读入两个点的坐标,并计算两点的曼哈顿距离和直线距离。计算曼哈顿距离时,直接按照曼哈顿距离的公式计算即可。计算直线距离时,使用 sqrt 函数和 pow 函数来计算两点的欧几里得距离。
阅读全文