求任一点高度

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <math.h>
int main()
{
    int h = 0;
    float x, y, d1, d2, d3, d4;
    int a[4] = {2,-2,-2,2};
    int b[4] = {2,2,-2,-2};
    printf("Please enter the coordinates of a point: x= ,y= \n");
    scanf("x=%f,y=%f", &x, &y);
    d1 = sqrt((a[0] - x) * (a[0] - x) + (b[0] - y) * (b[0] - y));
    d2 = sqrt((a[1] - x) * (a[1] - x) + (b[1] - y) * (b[1] - y));
    d3 = sqrt((a[2] - x) * (a[2] - x) + (b[2] - y) * (b[2] - y));
    d4 = sqrt((a[3] - x) * (a[3] - x) + (b[3] - y) * (b[3] - y));
    if((d1 < 1) || (d2 < 1) || (d3 < 1) || (d4 < 1))
    {
        h = 10;
    }
    printf("The height of this point is: %d\n", h);
    return 0;
}