解题思路:

注意事项:

参考代码:

#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;

bool judge(int maxX1,int minX1,int maxY1,int minY1,int maxX2,int minX2,int maxY2,int minY2){
	if(((minX2 >= minX1 && minX2 <= maxX1) || (maxX2 >= minX1 && maxX2 <= maxX1)) &&((minY2 >= minY1 && minY2 <=maxY1) || (maxY2 >= minY1 && maxY2 <=maxY1)))
		return true;
	else return false;
}

int main(void){
	double x1,x2,x3,x4,y1,y2,y3,y4;
	cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3 >> x4 >> y4;
	double maxX1 = x1 > x2? x1 : x2;
	double maxY1 = y1 > y2? y1 : y2;	
	double minX1 = x1 < x2? x1 : x2;
	double minY1 = y1 < y2? y1 : y2;
	double maxX2 = x3 > x4? x3 : x4;
	double maxY2 = y3 > y4? y3 : y4;
	double minX2 = x3 < x4? x3 : x4;
	double minY2 = y3 < y4? y3 : y4;	
	double ans = 0;	
	if(judge(maxX1,minX1,maxY1,minY1,maxX2,minX2,maxY2,minY2)){
		double x1,x2,y1,y2;
		x1 = minX1 > minX2 ? minX1 : minX2;
		x2 = maxX1 < maxX2 ? maxX1 : maxX2;
		y1 = minY1 > minY2 ? minY1 : minY2;
		y2 = maxY1 < maxY2 ? maxY1 : maxY2;
		ans = (x2-x1)*(y2-y1);
	}
	printf("%.2lf",ans); 
	return 0;
}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论