声明一个结构体point,包含三个数据成员x、y、z,表示一个点在三维空间的坐标。定义一个point类型的结构体数组p[3],对其初始化。并使用指针变量对数组进行遍历,并找出该数组所有元素钟与原点距离的最小值。
时间: 2023-11-28 14:50:02 浏览: 68
下面是代码实现:
```c
#include <stdio.h>
#include <math.h>
struct point {
double x;
double y;
double z;
};
int main() {
struct point p[3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
double min_distance = INFINITY; // 初始化为正无穷
for (int i = 0; i < 3; i++) {
double distance = sqrt(p[i].x * p[i].x + p[i].y * p[i].y + p[i].z * p[i].z);
if (distance < min_distance) {
min_distance = distance;
}
}
printf("min_distance: %lf\n", min_distance);
return 0;
}
```
首先定义了一个`point`的结构体,包含三个数据成员`x`、`y`、`z`,表示一个点在三维空间的坐标。然后定义了一个`point`类型的结构体数组`p[3]`,并对其进行了初始化。
接着使用`for`循环和指针变量对数组进行遍历,计算每个点与原点的距离,并记录最小值。
在计算距离时,使用了`sqrt()`函数来计算平方根,需要引入`math.h`头文件。另外,也可以使用`pow()`函数计算平方,如下所示:
```c
double distance = sqrt(pow(p[i].x, 2) + pow(p[i].y, 2) + pow(p[i].z, 2));
```
阅读全文