Given two rectangles and the coordinates of two points on the diagonals of each rectangle,you have to calculate the area of the intersected part of two rectangles. its sides are parallel to OX and OY .
1.00 1.00 3.00 3.00 2.00 2.00 4.00 4.00 5.00 5.00 13.00 13.00 4.00 4.00 12.50 12.50
1.0056.25
本题的解法过程在网上都可以查到,但本题的坑点是,必须持续输入,直到输入出错停止
#include<iostream> #include<algorithm> #include<cstdio> using namespace std; int main() { double x1,y1,x2,y2,x3,y3,x4,y4; while(cin>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4){ if(x1>x2)swap(x1,x2); if(y1>y2)swap(y1,y2); if(x3>x4)swap(x3,x4); if(y3>y4)swap(y3,y4); double X1,X2,Y1,Y2; X1=max(x1,x3);X2=min(x2,x4); Y1=max(y1,y3);Y2=min(y2,y4); if(X1>=X2||Y1>=Y2)printf("%.2lf\n",0); else printf("%.2lf\n",(X2-X1)*(Y2-Y1)); } return 0; }