c语言中有5个点,横纵座标见下表,求各点到坐标原点的距离。要求:5个点的横纵座标存储在一个结构体数组中。
时间: 2024-02-11 13:09:05 浏览: 28
好的,可以通过循环遍历结构体数组中的每个点,计算该点到坐标原点的距离。具体实现如下:
```c
#include <stdio.h>
#include <math.h>
// 定义点的结构体
struct Point {
int x;
int y;
};
int main() {
// 定义结构体数组存储5个点
struct Point points[5] = {{1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10}};
// 循环遍历每个点,计算到坐标原点的距离并输出
for (int i = 0; i < 5; i++) {
double distance = sqrt(pow(points[i].x, 2) + pow(points[i].y, 2));
printf("第%d个点到坐标原点的距离为:%.2f\n", i+1, distance);
}
return 0;
}
```
输出结果为:
```
第1个点到坐标原点的距离为:2.24
第2个点到坐标原点的距离为:5.00
第3个点到坐标原点的距离为:7.81
第4个点到坐标原点的距离为:10.63
第5个点到坐标原点的距离为:13.45
```
注意:这里使用了数学库中的 sqrt 和 pow 函数,需要在代码中添加头文件 math.h。
相关问题
给定N个点的横纵坐标,用C语言实现求解最近点对的算法
作为一个 AI,我可以回答这个问题。求解最近点对的算法可以使用分治法,具体步骤如下:
1. 将所有点按照横坐标排序。
2. 将所有点分成左右两个部分,分别递归求解最近点对。
3. 在左右两个部分中,分别找到距离最近的点对,记为 d1 和 d2。
4. 取 d1 和 d2 中距离更小的那个作为最终的最近点对。
5. 在左右两个部分中,找到横坐标距离中心线小于 d 的所有点,按照纵坐标排序。
6. 对于每个点,只需要考虑与它后面的 7 个点的距离即可,因为如果距离更远,前面的点已经被排除了。
这样可以在 O(NlogN) 的时间复杂度内求解最近点对。
C语言输入4个实数,表示点的坐标,求两点距离
可以使用以下代码计算两点之间的距离:
#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;
}