解题思路: 1.判断矩形是否存在
2.判断相交类型
注意事项:
参考代码:
#include <stdio.h>
typedef struct{
double x;
double y;
} point;
double min(double a,double b);
double max(double a,double b);
int main()
{
point p[4]; //存放四个点的坐标
double x1,x2,y1,y2;
int i;
// 读入两个矩形的四个点
for(i=0;i<4;i++){
scanf("%lf %lf",&p[i].x,&p[i].y);
}
x1=min( max( p[0].x, p[1].x ), max( p[2].x, p[3].x ) );
x2=max( min( p[0].x, p[1].x ), min( p[2].x, p[3].x ) );
y1=min( max( p[0].y, p[1].y), max( p[2].y, p[3].y ) );
y2=max( min( p[0].y, p[1].y), min( p[2].y, p[3].y ) );
// 判断给定的点是否能构成矩形
if((p[0].x-p[1].x && p[2].x-p[3].x) && (p[0].y-p[1].y && p[2].y-p[3].y)){
// 相交/包含
if(x1>x2&&y1>y2){
printf("%.2lf",(x1-x2)*(y1-y2));
}else{
// 相离
printf("0.00");
}
}else{
printf("0.00");
}
return 0;
}
double min(double a,double b) {
return a>b?b:a;
}
double max(double a,double b) {
return a>b?a:b;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复