声明一个结构体point,包含三个数据成员x、y、z,表示一个点在三维空间的坐标。定义一个point类型的结构体数组p[3],对其初始化。并使用指针变量对数组进行遍历,并找出该数组所有元素钟与原点距离的最小值。
时间: 2023-11-28 09:49:50 浏览: 76
Point-cloud-layer.zip_cloud_point cloud_对点云数据z轴_点云
下面是代码实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
struct point {
double x, y, z;
};
int main() {
point p[3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; // 初始化结构体数组
double min_dis = INFINITY; // 初始化最小距离为无穷大
// 使用指针变量遍历结构体数组
for (point* ptr = p; ptr < p + 3; ptr++) {
double dis = sqrt(ptr->x * ptr->x + ptr->y * ptr->y + ptr->z * ptr->z); // 计算距离
if (dis < min_dis) {
min_dis = dis; // 更新最小距离
}
}
cout << "所有点中与原点最近的距离为:" << min_dis << endl;
return 0;
}
```
输出结果为:
```
所有点中与原点最近的距离为:3.74166
```
其中,INFINITY 是 C++ 标准库中定义的一个宏,表示正无穷大,头文件为 `<cmath>`。指针变量 `ptr` 在遍历结构体数组时,会指向每个结构体元素的首地址,使用 `->` 运算符来访问成员。
阅读全文