首页 > 试题广场 >

有4个圆塔,圈心分别为(2,2)、(一2,2)、(一2,一2

[问答题]
有4个圆塔,圈心分别为(2,2)、(一2,2)、(一2,一2)、(2,一2),圆半径为1,见图4.16。这4个塔的高度为10m,塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为零)。

推荐

#include<stdio.h>

int main( )

{

int h=10;

floatx1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x,y,d1,d2,d3,d4;

pintf(“请输入一个点(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)  h=0;            /*判断该点是否在塔外*/

printf("该点高度为%d\n",h);

return 0;

}


发表于 2018-03-25 10:51:44 回复(0)
#include<stdio.h>
#include<math.h>
int main(){
	float x,y;
	int flag=0; 
	printf("请输入坐标x,y:");
	scanf("%f,%f",&x,&y);
	if(pow((x-2),2)+pow((y-2),2)<=1)
		flag=1;
	if(pow((x-2),2)+pow((y+2),2)<=1)
		flag=1;		
	if(pow((x+2),2)+pow((y-2),2)<=1)
		flag=1;
	if(pow((x+2),2)+pow((y+2),2)<=1)
		flag=1;		
	if(flag==1)
		printf("该处建筑高度为10m");
	else
		printf("该处建筑高度为0m");
	return 0;
} 

发表于 2021-01-12 14:25:14 回复(0)
#include <stdio.h>
double power(double x,int n){
 double k = 1.0;
 for(int i = 0; i < n;i ++){
  k *= x;
 }
 return k;
}
int main(){
 double x;
 double y;
 scanf("%lf%lf", &x,&y);
 int height = 0;
 if(power(x - 2,2) + power(y - 2, 2) <= 1)
  height = 10;
 if(power(x + 2,2) + power(y + 2, 2) <= 1)
  height = 10;
 if(power(x + 2,2) + power(y - 2, 2) <= 1)
  height = 10;
 if(power(x - 2,2) + power(y + 2, 2) <= 1)
  height = 10;
 printf("%d", height);
}
发表于 2019-12-22 16:57:20 回复(0)