[蓝桥杯]矩形面积交

[蓝桥杯][基础练习VIP]矩形面积交

时间限制: 1Sec 内存限制: 128MB 提交: 861 解决: 299

题目描述
平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。
输入
输入仅包含两行,每行描述一个矩形。

在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。
输出
输出仅包含一个实数,为交的面积,保留到小数后两位。
样例输入
1 1 3 3

2 2 4 4
样例输出
1.00

第一次写的时候,考虑复杂了,导致不完整。查看了很多题解之后,千篇一律,很有用。
代码简单,画个图就一目了然了,就不贴思路了。

完整源码

#include<iostream>
#include<math.h>
#include<stdio.h>
using namespace std;

int main()
{
	double a1x,a1y,a2x,a2y;
	double b1x,b1y,b2x,b2y;
	cin>>a1x>>a1y>>a2x>>a2y>>b1x>>b1y>>b2x>>b2y;
	double a1,a2,b1,b2;
	a1=min(max(a1x,a2x),max(b1x,b2x));
	a2=min(max(a1y,a2y),max(b1y,b2y));
	b1=max(min(a1x,a2x),min(b1x,b2x));
	b2=max(min(a1y,a2y),min(b1y,b2y));

	double s;
	if((a1>b1)&&(a2>b2))
		s=(a1-b1)*(a2-b2);
	else
		s=0;
	printf("%.2f",s);
}

欢迎大家留言交流代码!

猜你喜欢

转载自blog.csdn.net/DanBo_C/article/details/87895193