-
Notifications
You must be signed in to change notification settings - Fork 0
/
tempCodeRunnerFile.c
69 lines (67 loc) · 1.39 KB
/
tempCodeRunnerFile.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include<stdio.h>
typedef struct point
{
int x;//横坐标
int y;//纵坐标
}POINT;
typedef struct rect
{
POINT LeftTop;//左上角顶点的坐标
POINT RightBottom;//右下角顶点的坐标
}RECT;
void getPoint(POINT *p)
{
scanf("%d%d",&(p->x),&(p->y));
}
void getRect(RECT *rc){
getPoint(&(rc->LeftTop));
getPoint(&(rc->RightBottom));
}
int judgeRelation(POINT p,RECT rc){
int res;
if(p.x==rc.LeftTop.x||p.x==rc.RightBottom.x){
if(p.y<=rc.LeftTop.y&&p.y>=rc.RightBottom.y){
res =1;
}
else res =3;
}
else if(p.y==rc.LeftTop.y||p.y==rc.RightBottom.y){
if(p.x>=rc.LeftTop.x&&p.x<=rc.RightBottom.x){
res =1;
}
else res =3;
}
else if(p.x==rc.RightBottom.x){
if(p.y>=rc.LeftTop.y&&p.y<=rc.RightBottom.y){
res =1;
}
else res =3;
}
else if(p.x>=rc.LeftTop.x&&p.x<=rc.RightBottom.x&&p.y<=rc.LeftTop.y&&p.y>=rc.RightBottom.y){
res=2;
}
else{
res = 3;
}
return res;
}
int main()
{
POINT p;
RECT rc;
getPoint(&p);
getRect(&rc);
switch (judgeRelation(p,rc))
{
case 1:
puts("The point is on one edge.");
break;
case 2:
puts("The point is inside the rectangle.");
break;
case 3:
puts("The point is outside the rectangle.");
break;
}
return 0;
}