[蓝桥杯][基础练习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);
}
欢迎大家留言交流代码!