用C语言写一串代码完成下面题目:有4个圆塔,圆心分别为(2, 2)、(-2, 2)、(-2,-2)、(2,-2),圆半径为1。这4个塔的高度为10m,塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为0)
时间: 2024-11-23 16:41:00 浏览: 42
在C语言中,你可以使用结构体和函数来解决这个问题。首先,我们需要创建一个结构体表示圆塔,然后编写一个函数来检查给定点是否位于某个圆内,如果在内则返回塔高,若在外则返回0。以下是简单的代码示例:
```c
#include <stdio.h>
#include <math.h>
// 定义圆塔结构体
typedef struct {
int x, y; // 圆心坐标
float radius; // 半径
int height; // 塔高
} Tower;
// 检查点是否在圆内
int isInsideCircle(Tower tower, int px, int py) {
float distance = sqrt(pow(px - tower.x, 2) + pow(py - tower.y, 2));
return distance <= tower.radius ? tower.height : 0;
}
// 主函数,接收用户输入并计算建筑高度
int main() {
Tower towers[] = {
{2, 2, 1, 10},
{-2, 2, 1, 10},
{-2, -2, 1, 10},
{2, -2, 1, 10}
};
int n_towers = sizeof(towers) / sizeof(towers[0]);
int px, py; // 用户输入的点的坐标
printf("Enter point coordinates (x y): ");
scanf("%d %d", &px, &py);
int building_height = 0;
for (int i = 0; i < n_towers; i++) {
building_height += isInsideCircle(towers[i], px, py);
}
printf("The building height at the given point is: %d meters\n", building_height);
return 0;
}
```
当你运行这个程序,并输入任意两点的坐标时,它会输出对应点上建筑总高度。
阅读全文