C语言 | 求某点的建筑高度

例51:有4个圆塔,圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为1,这4个塔的高度为10cm,塔外无建筑物。今输入任一点的坐标,C语言编程求该点的建筑高度(塔外的高度为0)。

解析:此题说白了就是判断这点到各个圆心的距离,如果大于1的话证明在塔内,这是高度为10cm,否则就为0,关键是求点到各个圆心的距离。

源代码演示:

#include<stdio.h>//头文件 
int main()//主函数 
{
  int height=10; //定义灯塔高度 
  float x1=2,x2=-2,x3=-2,x4=2,y1=2,y2=2,y3=-2,y4=-2;//定义坐标 
  float x,y,d1,d2,d3,d4;//定义坐标 
  printf("请输入一个点坐标(x,y):");//提示语句 
  scanf("%f,%f",&x,&y);//键盘输入坐标 
  d1=(x-x4)*(x-x4)+(y-y4)*(y-y4);//求该点到各中心点距离 
  d2=(x-x1)*(x-x1)+(y-y1)*(y-y1);//求该点到各中心点距离 
  d3=(x-x2)*(x-x2)+(y-y2)*(y-y2);//求该点到各中心点距离 
  d4=(x-x3)*(x-x3)+(y-y3)*(y-y3);//求该点到各中心点距离 
  if(d1>1&&d2>1&&d3>1&&d4>1)//判断该点是否在塔外 
  { height=0;
  } printf("该点的高度为%d\n",height);
  return 0;//主函数返回值为0 
}

编译运行结果如下:

请输入一个点坐标(x,y):2,2
该点的高度为10

--------------------------------
Process exited after 25.06 seconds with return value 0
请按任意键继续. . .

当该点在塔外时:

请输入一个点坐标(x,y):29
该点的高度为0

--------------------------------
Process exited after 3.255 seconds with return value 0
请按任意键继续. . .
C语言 | 坐标求建筑高度 mp.weixin.qq.com图标

文章来源: zhuanlan.zhihu.com,作者:小林C语言,版权归原作者所有,如需转载,请联系作者。

原文链接:zhuanlan.zhihu.com/p/341850666

(完)