在編寫圖形介面軟體的時候,經常會遇到處理兩個矩形的關係。
如圖【1.jpg】所示,矩形的交集指的是:兩個矩形重疊區的矩形,當然也可能不存在(參看【2.jpg】)。兩個矩形的並集指的是:能包含這兩個矩形的最小矩形,它一定是存在的。
本題目的要求就是:由使用者輸入兩個矩形的座標,程式輸出它們的交集和並集矩形。
矩形座標的輸入格式是輸入兩個對角點座標,注意,不保證是哪個對角,也不保證順序(你可以體會一下,在桌面上拖動滑鼠拉矩形,4個方向都可以的)。
輸入資料格式:
x1,y1,x2,y2
x1,y1,x2,y2
資料共兩行,每行表示乙個矩形。每行是兩個點的座標。x座標在左,y座標在右。座標系統是:螢幕左上角為(0,0),x座標水平向右增大;y座標垂直向下增大。
要求程式輸出格式:
x1,y1,長度,高度
x1,y1,長度,高度
也是兩行資料,分別表示交集和並集。如果交集不存在,則輸出「不存在」
前邊兩項是左上角的座標。後邊是矩形的長度和高度。
例如,使用者輸入:
100,220,300,100
150,150,300,300
則程式輸出:
150,150,150,70
100,100,200,200
例如,使用者輸入:
10,10,20,20
30,30,40,40
則程式輸出:
不存在10,10,30,30
注意:請仔細除錯!您的程式只有能執行出正確結果的時候才有機會得分!
在評卷時使用的輸入資料與試卷中給出的例項資料可能是不同的。
重在調整開始時候的位置,之後只要分成兩種情況就好了,也就是相離和相交,剩下的很簡單了。。。
#include #include#include using namespace std;
int main ()
if(y1>y2)
if(xx1>xx2)
if(yy1>yy2)
//第乙個矩形在左,第二個矩形在右面
if(x1>xx1)
if( (xx1>=x2)||yy1>=y2 ||y1>yy2 ){//相離
int tx1=xx1x2?xx2:x2,ty1=y1yy2?y2:yy2;
coutyy2?y2:yy2),l=tx2-tx1,w=ty2-ty1;
cout<
藍橋杯 矩形面積交
問題描述 平面上有兩個矩形,它們的邊平行於直角座標系的x軸或y軸。對於每個矩形,我們給出它的一對相對頂點的座標,請你程式設計算出兩個矩形的交的面積。輸入格式 輸入僅包含兩行,每行描述乙個矩形。在每行中,給出矩形的一對相對頂點的座標,每個點的座標都用兩個絕對值不超過10 7的實數表示。輸出格式 輸出僅...
藍橋杯 基礎 矩形面積交
題目 基礎練習 矩形面積交 時間限制 1.0s 記憶體限制 512.0mb 問題描述 平面上有兩個矩形,它們的邊平行於直角座標系的x軸或y軸。對於每個矩形,我們給出它的一對相對頂點的座標,請你程式設計算出兩個矩形的交的面積。輸入格式 輸入僅包含兩行,每行描述乙個矩形。在每行中,給出矩形的一對相對頂點...
藍橋杯 加法運算
問題描述 你的表妹正在學習整數的加法,請編寫乙個程式來幫助她學習。該程式呼叫了乙個函式gettwoints,由它來返回兩個從鍵盤讀入的100以內的整數,然後計算這兩個整數之和,並把答案顯示出來。要求 在主函式中不能使用scanf等函式直接輸入這兩個整數,而必須通過呼叫gettwoints函式來完成,...