C 语言 | 选择结构程序设计, 第12题

有 4 个圆塔,圆心分别为 (2, 2)、(-2, 2)、(-2, -2)、(2, -2),圆半径为 1,见下图。这 4 个塔的高度为
10m,塔以外无建筑物。今输入任何一点的坐标,求该点的建筑高度(塔外的高度为 0m)

解题思路

输入一个坐标点 x和y,判断该点与上述的 4 个坐标中的其中一个坐标的距离是否 小于或等于 圆的半径 1
如果与上述 4 个坐标 中有一个成立,则你输入的这个坐标点的建筑物高度是 10m;
否则是 0m,即在建筑物外面。

那如何计算 输入的坐标点如 (2, 2) 的距离?请查看:计算两点之间距离

C 语言代码:

#include <stdio.h>
#include <math.h>

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
请按任意键继续. . .

如无特别声明,该文章均为 现在网NowTime.cc)原创,转载请遵循 署名-非商业性使用 4.0 国际(CC BY-NC 4.0) 协议,即转载请注明文章来源。


标签: C

赞 (1)

添加新评论