用c语言输入五个点,输出那两个点间的距离最近
时间: 2024-02-20 08:01:10 浏览: 31
好的,以下是一个基于C语言的实现,可以输入五个点的坐标,计算出其中距离最近的两个点:
```c
#include <stdio.h>
#include <math.h>
struct Point {
int x;
int y;
};
double distance(struct Point p1, struct Point p2) {
double dx = p1.x - p2.x;
double dy = p1.y - p2.y;
return sqrt(dx * dx + dy * dy);
}
int main() {
struct Point points[5];
for (int i = 0; i < 5; i++) {
printf("请输入第%d个点的坐标:\n", i + 1);
scanf("%d%d", &points[i].x, &points[i].y);
}
double min_distance = distance(points[0], points[1]);
int min_i = 0, min_j = 1;
for (int i = 0; i < 4; i++) {
for (int j = i + 1; j < 5; j++) {
double d = distance(points[i], points[j]);
if (d < min_distance) {
min_distance = d;
min_i = i;
min_j = j;
}
}
}
printf("距离最近的两个点为(%d,%d)和(%d,%d),距离为%.2f\n",
points[min_i].x, points[min_i].y, points[min_j].x, points[min_j].y, min_distance);
return 0;
}
```
在这个程序中,我们首先定义了一个结构体`Point`来存储点的坐标,然后定义了一个计算两个点之间距离的函数`distance`,最后在`main`函数中输入五个点的坐标,逐一计算它们之间的距离,找到其中距离最近的两个点,并输出它们之间的距离和坐标。