-->
当前位置:首页 > 题库 > 正文内容

程序填空题:结构体成员使用

Luz4年前 (2021-11-13)题库2374
在学习了用结构体的方式表示点和矩形之后,你一定会完成一个判断给定点是否在给定矩形中的操作。

### 输入格式:
输入两行,第一行输入两个整数,由空格分隔,分别表示点的横坐标和纵坐标;

第二行输入四个整数,任意两个整数之间用一个空格分隔,分别表示矩形某一条对角线上的两个顶点,前两个整数表示其中一个顶点的横坐标和纵坐标;后两个整数表示另一个顶点的横坐标和纵坐标。

题目保证所有输入的整数都大于等于 -1000并且小于等于 1000。矩形的横向边平行于 x 轴,纵向边平行于 y 轴,且面积一定大于 0。
### 输出格式:
输出为一行,如果给出的点在给出的矩形内或矩形边上,则输出YES,如果给出的点在给出的点在给出的矩形外,则输出NO。
### 输入样例1:

1 4
0 0 5 5

### 输出样例1:

YES

### 输入样例2:

1 4
3 3 0 0

### 输出样例2:

NO

思路:只要给定点在矩阵两个横坐标之间和两个纵坐标之间,则在该矩阵内。
c++
#include <stdio.h>
#include <math.h>
struct point {
int x;
int y;
};
typedef struct rectangle{
struct point p1;
struct point p2;
}rectangle;
void swap(int *,int *);
int main() {
struct point p;
rectangle r;
scanf("%d%d",@@[&p.x](1),&p.y);
scanf("%d%d%d%d",@@[&r.p1.x](1),&r.p1.y,&r.p2.x,&r.p2.y);
if(r.p1.x>r.p2.x)
{
swap(@@[&r.p1.x,&r.p2.x](1));//让r.p1.x值小于等于r.p2.x
}
if(r.p1.y>r.p2.y)
{
swap(@@[&r.p1.y,&r.p2.y](1));//让r.p1.y值小于等于r.p2.y
}
if(@@[(r.p1.x<=p.x&&p.x<=r.p2.x)&&(r.p1.y<=p.y&&p.y<=r.p2.y)](1))
{
printf("YES");
}
else
{
printf("NO");
}
return 0;
}
void swap(int *a,int *b){
@@[ int t;](1)
t=*a;
*a=*b;
*b=t;
}








答案:
第1空:&p.x

第2空:&r.p1.x

第3空:&r.p1.x,&r.p2.x

第4空:&r.p1.y,&r.p2.y

第5空:(r.p1.x<=p.x&&p.x<=r.p2.x)&&(r.p1.y<=p.y&&p.y<=r.p2.y)

第6空: int t;

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。