C语言求塔高

来源:百度知道 编辑:UC知道 时间:2024/06/27 16:40:13
题目:有4个圆塔,圆心分别为(2,2)、(-2,2)、(2,-2)、(-2,-2),圆半径为1。这4个塔的高度分别为10m。塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为零)。最好用绝对值算

#include<stdio.h>
#include<math.h>
void main()
{
float x,y;
clrscr();
printf ("x=");
scanf ("%f",&x);
printf ("y=");
scanf ("%f",&y);
x=abs(x);
y=abs(y);
if((x-2)*(x-2)+(y-2)*(y-2)<=1)
{printf("塔高H=10m");
}
else
{printf("此处高度为0");
}
}

既然四个塔分别位于4个象限的角分线上:(塔是圆锥体吗?还是圆柱?假设是圆锥好了,圆柱太简单了。)
1.先判断输入点的坐标绝对值
2.求出输入点与1象限塔心的距离,大于等于1高度=0.
3.小于1的,(10m*(1-距离))就是高度。

算法弄好了程序就简单了。

double height(double x,double y)
{
double d;
x=abs(x);y=abs(y);
d=sqrt((x-2)*(x-2)+(y-2)*(y-2));
if(d<1.0) return 10*(1.0-d);
else return 0;
}

高人啊