矩形面积交

来源:互联网 发布:文件修复软件 编辑:程序博客网 时间:2024/04/30 17:35

矩形面积交

问题描述  平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。输入格式  输入仅包含两行,每行描述一个矩形。  在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。输出格式  输出仅包含一个实数,为交的面积,保留到小数后两位。样例输入1 1 3 32 2 4 4样例输出1.00

#include <iomanip>#include <iostream>#include <CMATH>using namespace std;struct point{double x,y;};double max(double a,double b){return a>=b?a:b;}double min(double a,double b){return a<=b?a:b;}int main(){point p1,p2; //第一个矩阵point p3,p4; //第二个矩阵point p5,p6; //相交矩阵cin>>p1.x>>p1.y>>p2.x>>p2.y;cin>>p3.x>>p3.y>>p4.x>>p4.y;p5.x = max(min(p1.x,p2.x),min(p3.x,p4.x));p5.y = max(min(p1.y,p2.y),min(p3.y,p4.y));p6.x = min(max(p1.x,p2.x),max(p3.x,p4.x));p6.y = min(max(p1.y,p2.y),max(p3.y,p4.y));if(p6.x>p5.x)    cout<<setprecision(2)<<fixed<<fabs(p6.x-p5.x)*fabs(p6.y-p5.y)<<endl;else cout<<"0.00"<<endl;return 0;}




0 0
原创粉丝点击