1152 - C语言5.14

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

题目输入

两个用空格分隔的实数,表示输入的点坐标。

题目输出

输入坐标位置的建筑高度,保留2位小数。

请注意行尾输出换行。

输入/输出样例

题目输入

2.1 2.3

题目输出

10.00

C语言解答

#include <stdio.h>
int main() {
        int h = 10;
        float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2;
        float x,y,d1,d2,d3,d4;
        scanf("%f %f", &x, &y);                                     
        d1=(x-x1) * (x-x1)+(y-y1) * (y-y1);
        d2=(x-x2) * (x-x2)+(y-y2) * (y-y2);
        d3=(x-x3) * (x-x3)+(y-y3) * (y-y3);
        d4=(x-x4) * (x-x4)+(y-y4) * (y-y4);
        if (d1>1 && d2>1 && d3>1 && d4>1) h=0;       
        printf("%.2f\n", h + .0);
        return 0;
}

C++解答

#include <stdio.h>
int main() {
	int h = 10;
	float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2;
	float x,y,d1,d2,d3,d4;
	scanf("%f %f", &x, &y);					/*求该点到各中心点的距离*/
	d1=(x-x1) * (x-x1)+(y-y1) * (y-y1);
	d2=(x-x2) * (x-x2)+(y-y2) * (y-y2);
	d3=(x-x3) * (x-x3)+(y-y3) * (y-y3);
	d4=(x-x4) * (x-x4)+(y-y4) * (y-y4);
	if (d1>1 && d2>1 && d3>1 && d4>1) h=0;	/*判断该点是否在塔外*/
	printf("%.2f\n", h + .0);
	return 0;
}

时间限制 1 秒
内存限制 32 MB
讨论 统计
上一题 下一题