解题思路:两个长方形没相交,则一个长方形的最小横坐标大于z另一个最大横坐标,或一个最小纵坐标大于另一个最大纵坐标;若相交,则相交部分的长方形的坐标必介于两个长方形中的最大与最小坐标之间,即其坐标为:第二,三大的横纵坐标;
注意事项:
参考代码:
int main()
{
double x1,y1,x2,y2;//第一个长方形的坐标
double s1,t1,s2,t2;//第二个长方形坐标
double x,y;
double t;
double s;
scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
scanf("%lf%lf%lf%lf",&s1,&t1,&s2,&t2);
/*将两个长方形坐标转换为对应左下角与右上角*/
if(x1>x2){t=x1,x1=x2,x2=t;}
if(y1>y2){t=y1,y1=y2,y2=t;}
if(s1>s2){t=s1,s1=s2,s2=t;}
if(t1>t2){t=t1,t1=t2,t2=t;}
if(s1>x2||x1>s2||y1>t2||t1>y2)s=0;//两个长方形未相交
else
s=((x2<s2?x2:s2)-(x1>s1?x1:s1))*((y2<t2?y2:t2)-(y1>t1?y1:t1));//若相交则相交部分的横坐标为两个长方形的横坐标的中间两个,纵坐标类似
printf("%.2lf",s);
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复