c语言程序设计输入五个点float型输出哪两个点间的距离最近。
以下是示例代码:
#include <stdio.h>
#include <math.h>
int main()
{
float x[5], y[5], min_dist = INFINITY;
int point1, point2;
printf("请输入五个点的坐标(x,y):\n");
for (int i = 0; i < 5; i++) {
scanf("%f %f", &x[i], &y[i]);
}
for (int i = 0; i < 4; i++) {
for (int j = i + 1; j < 5; j++) {
float dist = sqrt(pow(x[i] - x[j], 2) + pow(y[i] - y[j], 2));
if (dist < min_dist) {
min_dist = dist;
point1 = i;
point2 = j;
}
}
}
printf("距离最近的两个点为 (%.2f,%.2f) 和 (%.2f,%.2f),距离为 %.2f\n", x[point1], y[point1], x[point2], y[point2], min_dist);
return 0;
}
说明:
-
首先定义了两个数组
x和y分别用于存储五个点的横坐标和纵坐标; -
使用循环语句
for分别输入五个点的坐标; -
使用两层嵌套的循环语句
for,枚举每两个点之间的距离,计算出最小距离和对应的两个点的下标; -
最后输出距离最近的两个点的坐标和距离。其中,使用了数学库
<math.h>中的函数sqrt和pow分别计算平方根和幂次方
原文地址: https://www.cveoy.top/t/topic/f3Vk 著作权归作者所有。请勿转载和采集!