問題描述
平面上有兩個矩形,它們的邊平行於直角座標系的X軸或Y軸。對於每個矩形,我們給出它的一對相對頂點的座標,請你編程算出兩個矩形的交的面積。
輸入格式
輸入僅包含兩行,每行描述一個矩形。
在每行中,給出矩形的一對相對頂點的座標,每個點的座標都用兩個絕對值不超過10^7的實數表示。
輸出格式
輸出僅包含一個實數,爲交的面積,保留到小數後兩位。
樣例輸入
1 1 3 3
2 2 4 4
樣例輸出
1.00
<span style="font-size:18px;">#include<stdio.h>
typedef struct S{
float x;
float y;
}S;
double min(int a,int b){
return a<b?a:b;
}
double max(int c,int d){
return c>d?c:d;
}
int main(){
S p1,p2,p3,p4,p5,p6;
scanf("%1f%1f%1f%1f",&p1.x,&p1.y,&p2.x,&p2.y);
scanf("%1f%1f%1f%1f",&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(p5.x <= p6.x){
printf("%.2f",(p6.x-p5.x)*(p6.y-p5.x));
}
else{
printf("兩個矩形沒有相交");
}
return 0;
}
</span>