C语言输入4个实数,表示点的坐标,求两点距离
时间: 2023-05-11 22:06:35 浏览: 67
可以使用以下代码计算两点之间的距离:
#include <stdio.h>
#include <math.h>
int main() {
double x1, y1, x2, y2;
printf("请输入第一个点的坐标(x1, y1):");
scanf("%lf %lf", &x1, &y1);
printf("请输入第二个点的坐标(x2, y2):");
scanf("%lf %lf", &x2, &y2);
double distance = sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2));
printf("两点之间的距离为:%.2lf\n", distance);
return 0;
}
相关问题
用c语言编一个程序,首先输入n,n表示接下来输入组数,每组输入一个实数对,表示两个点的坐标,然后输出最近点对中两个点的坐标和它们之间的距离。
以下是使用C语言编写的程序,实现输入n组坐标,输出最近点对的坐标和距离:
```c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
// 定义坐标结构体
typedef struct coordinate {
double x;
double y;
} Coordinate;
// 计算两点之间距离
double distance(Coordinate a, Coordinate b) {
return sqrt(pow(a.x - b.x, 2) + pow(a.y - b.y, 2));
}
int main() {
int n;
printf("请输入测试数据组数n:");
scanf("%d", &n);
// 动态分配空间存储所有坐标
Coordinate *coords = (Coordinate *)malloc(n * sizeof(Coordinate));
for (int i = 0; i < n; i++) {
printf("请输入第%d组坐标(x, y):", i + 1);
scanf("%lf %lf", &coords[i].x, &coords[i].y);
}
// 初始化最小距离为正无穷大
double min_dis = INFINITY;
Coordinate min_coord1, min_coord2;
// 暴力枚举所有点对,并计算它们之间的距离
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
double dis = distance(coords[i], coords[j]);
if (dis < min_dis) {
min_dis = dis;
min_coord1 = coords[i];
min_coord2 = coords[j];
}
}
}
// 输出最近点对的坐标和距离
printf("最近点对为:(%.2lf, %.2lf)和(%.2lf, %.2lf),距离为:%.2lf\n",
min_coord1.x, min_coord1.y, min_coord2.x, min_coord2.y, min_dis);
// 释放动态分配的内存
free(coords);
return 0;
}
```
程序运行示例:
```
请输入测试数据组数n:3
请输入第1组坐标(x, y):1.2 5.6
请输入第2组坐标(x, y):3.4 8.9
请输入第3组坐标(x, y):2.4 3.4
最近点对为:(1.20, 5.60)和(2.40, 3.40),距离为:2.53
```
C语言编程,从键盘输入两个点的坐标(x1,y1)和(x2,y2),并计算他们之间距离。输出保留2位小数。
以下是使用C语言编写的程序,从键盘输入两个点的坐标(x1,y1)和(x2,y2),并计算它们之间的距离,并输出结果:
```c
#include <stdio.h>
#include <math.h>
int main()
{
float x1, y1, x2, y2, distance;
// 从键盘输入两个点的坐标
printf("请输入第一个点的坐标(x1,y1): ");
scanf("%f,%f", &x1, &y1);
printf("请输入第二个点的坐标(x2,y2): ");
scanf("%f,%f", &x2, &y2);
// 计算两点之间的距离
distance = sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2));
// 输出结果,保留2位小数
printf("两点之间的距离为:%.2f\n", distance);
return 0;
}
```
解释一下程序的主要部分:
1. 我们首先声明了四个变量,分别代表两个点的坐标以及它们之间的距离。因为距离是一个实数,所以我们使用float类型来声明变量。
2. 然后,我们使用scanf函数从键盘输入两个点的坐标。注意,我们使用了%f,%f来格式化输入的坐标,这是因为我们要在输入时用逗号分隔两个坐标值。
3. 接下来,我们使用sqrt和pow函数计算两个点之间的距离。sqrt函数用于计算平方根,pow函数用于计算一个数的n次方。
4. 最后,我们使用printf函数输出结果。我们使用%.2f来指定输出结果的格式,其中.2表示保留两位小数。