点在哪

http://acm.sdibt.edu.cn/JudgeOnline/problem.php?id=1404

Time Limit: 1 Sec  Memory Limit: 64 MB
Submit: 17  Solved: 3
[Submit][STATUS][DISCUSS]

Description

给出一组图形(矩形或圆)和一组点的数据,判断点的位置。

Input

输 入一组图形的数据,其中每行以“c”开头的表示圆,以“r”开头的表示矩形,其中矩形是依次给出左下角和右上角的坐标,圆是给出圆心坐标及半径,图形数据 以输入另起一行的 *结束,接下来是给出点的坐标(x,y),整个输入文件以9999.9 9999.9结束,每行中的各个数据间用一个空格分隔。

Output

输出点的位置如下信息:直接输出到屏幕上,如某点在图形上,则输出所有图形上的信息:point i is contained in figure j;如某点不在任一图形内,则输入:point i is not contained in any figure。

Sample Input

r 0.0 0.0 5.5 10.3
c -5.0 -5.0 3.7
r 2.5 2.5 12.5 12.5
*
2.0 2.0
4.7 5.3
9999.9 9999.9

Sample Output

point 1 is contained in figure 1
point 2 is contained in figure 1
point 2 is contained in figure 3
解题思路:
1.开辟两个大小为1000的cir和rec数组,记录输入的圆和矩形
2.每输入一个点进行判断输出
核心代码:
if(rec[i].num!=0&&cir[i].num==0)
    if(p.x>=rec[i].xl&&p.x<=rec[i].xr&&p.y>=rec[i].yl&&p.y<=rec[i].yr)//判断是否在矩形中
    {
        cout<<"point "<<cntp<<" is contained in figure "<<rec[i].num<<endl;
        flag=true;
    }
if(rec[i].num==0&&cir[i].num!=0)
    if(((p.x-cir[i].x)*(p.x-cir[i].x)+(p.y-cir[i].y)*(p.y-cir[i].y))<=(cir[i].r*cir[i].r))//判断是否在圆中
    {
        cout<<"point "<<cntp<<" is contained in figure "<<cir[i].num<<endl;
        flag=true;
    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

T技术沙龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值