用C编写:有4个圆塔,圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为1。这4个塔的高度为10m,塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为零)。
时间: 2024-04-16 07:26:49 浏览: 120
以下是用C语言编写的解决方案:
```c
#include <stdio.h>
#include <math.h>
struct Tower {
double x;
double y;
double height;
};
double calculateHeight(double x, double y, struct Tower towers[], int numTowers) {
double maxHeight = 0.0;
for (int i = 0; i < numTowers; i++) {
double distance = sqrt(pow((x - towers[i].x), 2) + pow((y - towers[i].y), 2));
double towerHeight = towers[i].height;
if (distance <= 1.0 && towerHeight > maxHeight) {
maxHeight = towerHeight;
}
}
return maxHeight;
}
int main() {
struct Tower towers[4] = {
{2.0, 2.0, 10.0},
{-2.0, 2.0, 10.0},
{-2.0, -2.0, 10.0},
{2.0, -2.0, 10.0}
};
double x, y;
printf("请输入点的坐标(x, y):");
scanf("%lf %lf", &x, &y);
double height = calculateHeight(x, y, towers, 4);
printf("该点的建筑高度为:%.2lf米\n", height);
return 0;
}
```
这段代码定义了一个 `Tower` 结构体,表示每个塔的坐标和高度。然后,使用 `calculateHeight` 函数计算给定点的建筑高度。在 `main` 函数中,我们创建了一个保存四个塔信息的数组,并从用户输入获取点的坐标。最后,输出该点的建筑高度。
请注意,这只是一个简单的示例,具体实现可能需要根据实际需求进行调整。希望能对你有所帮助!
阅读全文