#include <iostream>
#include <iomanip>
#include <math.h>
// 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。
// 对于每个矩形,我们给出它的一对相对顶点的坐标,
// 请你编程算出两个矩形的交的面积。
// 输入仅包含两行,每行描述一个矩形。
// 在每行中,给出矩形的一对相对顶点的坐标,
// 每个点的坐标都用两个绝对值不超过10 ^ 7的实数表示。
// 输出仅包含一个实数,为交的面积,保留到小数后两位。
int max(int a, int b)
{
if (a < b)
return b;
else
return a;
}
int min(int a, int b)
{
if (a < b)
return a;
else
return b;
}
int main()
{
using namespace std;
double x1, y1, x2, y2, x3, y3, x4, y4;
double nx1, ny1, nx2, ny2;
cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3 >> x4 >> y4;
// 左下角横坐标
nx1 = max(min(x1, x2), min(x3, x4));
// 左下角纵坐标
ny1 = max(min(y1, y2), min(y3, y4));
// 右上角横坐标
nx2 = min(max(x1, x2), max(x3, x4));
// 右上角纵坐标
ny2 = min(max(y1, y2), max(y3, y4));
if (nx2 > nx1 && ny2 > ny1)
{
printf_s("%.2f", (nx2 - nx1)*(ny2 - ny1));
}
else
{
printf_s("0.00");
}
}
蓝桥杯 基础练习18 矩形面积交
最新推荐文章于 2022-04-04 16:30:32 发布