2015-06-24 159 views
0

輸入和輸出格式:計算座標2矩形

輸入的第一行包含由對應於x的空間分隔的4個整數, y,l和w的第一個矩形。 輸入的第二行由4個整數組成,它們由與第二個矩形的x,y,l和w對應的空格分隔。

輸出由4個整數組成,對應於聯合矩形的x,y,l和w。

Sample Input : 
3 8 1515 
2 6 10 10 
Sample Output: 
2 6 16 17 

這裏是我的代碼 它被證實了一些測試情況下,當我提出這是不能接受的。 我正在嘗試在線編碼網站上。 這是我的代碼。

#include<stdio.h> 
#include<math.h> 
int main() 
{ 
    int x1,y1,x2,y2,l1,w1,l2,w2,x3,y3,l3,w3; 
    scanf("%d %d %d %d",&x1,&y1,&l1,&w1); 
    scanf("\n%d %d %d %d",&x2,&y2,&l2,&w2); 
    if(x1<x2) 
     x3=x1; 
    else 
     x3=x2; 
    if(y1<y2) 
     y3=y1; 
    else 
     y3=y2; 
    if(x1==x2) 
    { 
     if(l1<l2) 
      w3=l2; 
     else 
      w3=l1; 
    } 
    if(y1==y2) 
    { 
     // printf("inp"); 
     if(w1<w2) 
     { 
      w3=w2; 
      //printf("%d",w3); 
     } 
     else 
     { 
      w3=w1; 
     } 
    } 
    if(x1<x2) 
     l3=l2+fabs(x1-x2); 
    else if(x2<x1) 
     l3=l1+fabs(x1-x2); 
    if(y1<y2) 
     w3=w2+fabs(y1-y2); 
    else if(y2<y1) 
     w3=w1+fabs(y1-y2); 
    printf("%d ",x3); 
    printf("%d ",y3); 
    printf("%d ",l3); 
    printf("%d",w3); 
    return 0; 
} 

如果有人有替代邏輯,然後告訴我。

+0

如果你在這裏發佈一些在線編程挑戰,執法機關在打擾完全描述的問題身體問題。 –

+0

@Eugene給定左下角(x,y)的座標,2個矩形的長度(l)和寬度(w),編寫一個程序來查找包含2個給定矩形的最小可能矩形。 輸入和輸出格式: 輸入的第一行由4個整數組成,它們由與第一個矩形的x,y,l和w對應的空格分隔。 輸入的第二行由4個整數組成,它們由與第二個矩形的x,y,l和w對應的空格分隔。 輸出包含4個整數,對應於聯合矩形的x,y,l和w。 –

+2

*在問題正文* –

回答

1
#include<stdio.h> 
int main() 
{ 
    int x1, y1, x2, y2, l1, w1, l2, w2; 
    scanf("%d %d %d %d",&x1,&y1,&l1,&w1); 
    scanf("\n%d %d %d %d",&x2,&y2,&l2,&w2); 

    int min_x = x1 < x2 ? x1 : x2; 
    int min_y = y1 < y2 ? y1 : y2; 
    int max_x = (x1+w1) > (x2+w2) ? (x1+w1) : (x2+w2); 
    int max_y = (y1+l1) > (y2+l2) ? (y1+l1) : (y2+l2); 

    int max_w = max_x - min_x; 
    int max_l = max_y - min_y; 

    printf("%d %d %d %d", min_x, min_y, max_l, max_w); 
    return 0; 
} 

這是假設你的寬度是在x方向,你的長度是在y方向。如果這是另一種方式,它不應該太難改變。

+0

替換第二個測試'<' with '>'這樣'(x1 + w1)>(x2 + w2)'等。 –

+0

@WeatherVane啊,當然。謝謝你的糾正! – Jashaszun

+0

這是因爲我實際上運行了代碼... –

0

我在網上課程中遇到同樣的問題... 這裏是我的問題鏈接。 union of two rectangles.write a program to find the smallest possible rectangle enclosing the 2 given rectangles 和我的方案,這是工作,沒有任何錯誤或「錯誤的答案」被接受..

#include<stdio.h> 
int main() { 
    int x1, x2, y1, y2, l1, l2, w1, w2, xmax, xmin, ymax, ymin; 
    scanf(「%d %d %d %d\n」,&x1,&y1,&l1,&w1); 
    scanf(「%d %d %d %d\n」,&x2,&y2,&l2,&w2); 
    xmin = x1 < x2 ? x1 : x2; 
    ymin = y1 < y2 ? y1 : y2; 
    int b = x1 + l1; 
    int c = x2 + l2; 
    xmax = b > c ? b : c; 
    int d = y1 + w1; 
    int e = y2 + w2; 
    ymax = d > e ? d : e; 
    int l = xmax - xmin; 
    int w = ymax - ymin; 
    printf(「%d %d %d %d」,xmin,ymin,l,w); 
    return 0; 
}