1. 程式人生 > 其它 >試題 基礎練習 矩形面積交

試題 基礎練習 矩形面積交

技術標籤:藍橋杯演算法

問題描述

平面上有兩個矩形,它們的邊平行於直角座標系的X軸或Y軸。對於每個矩形,我們給出它的一對相對頂點的座標,請你程式設計算出兩個矩形的交的面積。

輸入格式

輸入僅包含兩行,每行描述一個矩形。在每行中,給出矩形的一對相對頂點的座標,每個點的座標都用兩個絕對值不超過10^7的實數表示。

輸出格式

輸出僅包含一個實數,為交的面積,保留到小數後兩位。
樣例輸入
1 1 3 3
2 2 4 4
樣例輸出
1.00
程式碼:

#include<iostream>
using namespace std;
#include<stdio.h>

double
max(double a,double b) { if(a>b)return a; else return b; } double min(double a,double b) { if(a<b)return a; else return b; } void swap(double& a,double& b) { double t=a; a=b; b=t; } int main() { double x1=0,y1=0; double x2=0,y2=0; double x3=0,y3=0; double x4=0,y4=0; cin>>x1>>
y1>>x2>>y2; cin>>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 a=0,b=0,c=0,d=0; a=max(x1,x3); b=max(y1,y3); c=min(x2,x4); d=min(y2,y4); double m=c-a; double n=d-b; double S=
m*n; if(m<=0||n<=0)printf("0.00"); else printf("%.2f",S); return 0; }