用c语言输入五个点(float型),输出那两个点间的距离最近
时间: 2024-02-20 21:01:13 浏览: 59
好的,以下是一个基于C语言的实现,可以输入五个点的坐标(float型),计算出其中距离最近的两个点:
```c
#include <stdio.h>
#include <math.h>
struct Point {
float x;
float y;
};
float distance(struct Point p1, struct Point p2) {
float dx = p1.x - p2.x;
float dy = p1.y - p2.y;
return sqrtf(dx * dx + dy * dy);
}
int main() {
struct Point points[5];
for (int i = 0; i < 5; i++) {
printf("请输入第%d个点的坐标:\n", i + 1);
scanf("%f%f", &points[i].x, &points[i].y);
}
float 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++) {
float d = distance(points[i], points[j]);
if (d < min_distance) {
min_distance = d;
min_i = i;
min_j = j;
}
}
}
printf("距离最近的两个点为(%.2f,%.2f)和(%.2f,%.2f),距离为%.2f\n",
points[min_i].x, points[min_i].y, points[min_j].x, points[min_j].y, min_distance);
return 0;
}
```
在这个程序中,我们同样定义了一个结构体`Point`来存储点的坐标,但是将其定义为`float`类型。然后同样定义了一个计算两个点之间距离的函数`distance`,最后在`main`函数中输入五个点的坐标,逐一计算它们之间的距离,找到其中距离最近的两个点,并输出它们之间的距离和坐标。需要注意的是,我们在计算距离时使用了`sqrtf`函数,该函数是计算`float`类型的平方根。
阅读全文