C 语言 | 选择结构程序设计, 第12题 作者: Chuwen 时间: 2019-04-15 分类: C/C++ > 有 4 个圆塔,圆心分别为 (2, 2)、(-2, 2)、(-2, -2)、(2, -2),圆半径为 1,见下图。这 4 个塔的高度为 10m,塔以外无建筑物。今输入任何一点的坐标,求该点的建筑高度(塔外的高度为 0m) # 解题思路 输入一个坐标点 `x和y`,判断该点与上述的 4 个坐标中的其中一个坐标的距离是否 **小于或等于** 圆的半径 `1`。 如果与上述 **4 个坐标** 中有一个成立,则你输入的这个坐标点的建筑物高度是 10m; 否则是 0m,即在建筑物外面。 那如何计算 `输入的坐标点` 与`如 (2, 2) 的距离`?请查看:[计算两点之间距离][1] # C 语言代码: ```c #include #include int main() { double x,y,d1,d2,d3,d4; printf("请输入坐标:"); scanf("%lf %lf", &x, &y); d1 = sqrt(pow(x-2, 2)+pow(y-2, 2));//第一象限 2, 2 d2 = sqrt(pow(x+2, 2)+pow(y-2, 2));//第二象限 -2, 2 d3 = sqrt(pow(x+2, 2)+pow(y+2, 2));//第三象限 -2,-2 d4 = sqrt(pow(x-2, 2)+pow(y+2, 2));//第四象限 2,-2 if(d1<=1 || d2<=1 || d3<=1 || d4<=1) { printf("该点的建筑高度是 10m"); } else { printf("该点的建筑高度是 0m"); } return 0; } ``` # 运行结果: ``` 请输入坐标:1.5 2.3 x=1.500000 y=2.300000 该点的建筑高度是 10m -------------------------------- Process exited after 7.869 seconds with return value 0 请按任意键继续. . . ``` [1]: https://www.shuxuele.com/algebra/distance-2-points.html 标签: C