作业帮 > 综合 > 作业

有4个圆塔,圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为1.塔高为10米,塔外无其它建筑物

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/27 06:51:02
有4个圆塔,圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为1.塔高为10米,塔外无其它建筑物,今输入任一点的坐标,求该点的建筑高度(塔外高度为0).
main()
{
int h=10;
float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y2=-2;
float x,y,d1,d2,d3,d4;
printf(“input a point(x,y):”);
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(“the high of this point is:%d\n”,h);
}
帮我在旁边打上注释
main()
{
int h=10; //设置h的值为塔高10米
float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y2=-2;//定义各塔的圆心坐标
float x,y,d1,d2,d3,d4; //x,y:用来保存输入的坐标值,d1,d2,d3,d4:用来保存计算后的值
printf(“input a point(x,y):”);//输入任一点的坐标
scanf(“%f,%f”,&x,&y); //输出
d1=(x-x1)*(x-x1)+(y-y1)*(y-y1);//计算点是否在d1中
d2=(x-x2)*(x-x2)+(y+y2)*(y+y2); //计算点是否在d2中
d3=(x+x3)*(x+x3)+(y-y3)*(y-y3); //计算点是否在d3中
d4=(x+x4)*(x+x4)+(y+y4)*(y+y4); //计算点是否在d4中
if (d1>1 && d2>1 && d3>1 && d4>1) h=0; //判断,如果点不在d1,d2,d3,d4中,说明点不在塔上,高度h为0
printf(“the high of this point is:%d\n”,h);//输出高度h
}