word怎么画大括号:出一问题.能回答的奖8位数永久会员qq一个

来源:百度文库 编辑:高考问答 时间:2024/05/01 02:51:38
能回答的奖8位数永久会员qq一个
有4个圆塔,圆心分别为(2,2),(—2,2),(—2,—2),(2,—2),圆半径为1。这4个塔的高度为10cm,塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为零)

#include <math.h>
#include <stdio.h>

main()
{
double x,y;
double absx,absy;
scanf("%lf,%lf",&x,&y);
absx=fabs(x)-2;
absy=fabs(y)-2;
if((absx*absx+absy*absy)<=1)
{
printf("High=10");
}
else
{
printf("High=0");
}
getch();
}
TC2下编译成功,注意四个点是对称的,所以也就省去每个象限都去求解的麻烦,恰好半径是1,开平方的事情也省了,不要什么都交给电脑去做,虽然它算的很快,但积少成多

/*圆标准方程:(x-a)平方+(y-b)平方=r平方 (r>0), 其中圆心为(a,b), 半径为r。*/
#include <stdio.h>

int judge (int ,int , float ,float);

void main()
{
float x,y;
printf("Input x and y:");
scanf("%f%f",&x,&y);//输入坐标 可以带小数
if(judge(2,2,x,y) || judge(2,-2,x,y) || judge(-2,2,x,y) || judge(-2,-2,x,y))
printf("High:10m");
else
printf("High:0m");
}

int judge (int a,int b,float x,float y)/*判断点于圆的位置关系 点在圆内或圆上返回1,否则返回0*/
{
if((x-a)*(x-a)+(y-b)*(y-b) <= 1)//严格说这样并不严格成立,因为浮点数的精度有限 可能会造成误判
return 1;
return 0;
}

......

优化一下:
因为是 轴对称+中心对称
所以只要求点(x,y)的第一象限坐标(abs(x),abs(y))相对于点(2,2)的距离,<=1则高度为10cm,否则高度为零

nang .