藍杯十八

/*矩形面積交

問題描述  平面上有兩個矩形,它們的邊平行于直角坐標系的X軸或Y軸。對于每個矩形,我們給出它的一對相對頂點的坐標,請你編程算出兩個矩形的交的面積。

輸入格式  輸入僅包含兩行,每行描述一個矩形?! ≡诿啃兄校o出矩形的一對相對頂點的坐標,每個點的坐標都用兩個絕對值不超過10^7的實數表示。

輸出格式  輸出僅包含一個實數,為交的面積,保留到小數后兩位。

樣例輸入

1 1 3 3

2 2 4 4

樣例輸出1.00*/

/* 注意:一定要用double存儲,即使最后精度不是double,中間過程中也可能出現需要double存儲的數據,用float會造成精度損失,導致結果偏差,測試數據無法通過。*/

#include<stdio.h>?

#define max(x,y) ((x)>(y)?(x):(y))?

#define min(x,y) ((x)<(y)?(x):(y))

int main(){? ? ?

double x1,y1,x2,y2;? ? //矩形1? ? ?

double x3,y3,x4,y4;? ? //矩形2? ? ?

double m1,n1;? ? ? ? //交集左上角坐標.? ? ?

double m2,n2;? ? ? ? //交集右下角坐標.? ? ?

scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);?

scanf("%lf%lf%lf%lf",&x3,&y3,&x4,&y4);? ?

m1 = max(min(x1,x2),min(x3,x4));? ?

n1 = max(min(y1,y2),min(y3,y4));? ? ?

m2 = min(max(x1,x2),max(x3,x4));? ?

n2 = min(max(y1,y2),max(y3,y4));? ?

if(m2>m1 && n2>n1)? ? ? ? ?

printf("%.2f\n",(m2 - m1)*(n2 - n1));? ? ?

else? ? ? ? ?

printf("0.00\n");? ? ?

return 0;?

}?


二、/*數字三角形

問題描述 ?。▓D3.1-1)示出了一個數字三角形。 請編一個程序計算從頂至底的某處的一條路  徑,使該路徑所經過的數字的總和最大。  每一步可沿左斜線向下或右斜線向下走;  1<三角形行數≤100;  三角形中的數字為整數0,1,…99;

輸入格式  文件中首先讀到的是三角形的行數。  接下來描述整個三角形

輸出格式  最大總和(整數)

樣例輸入

5

7

3 8

8 1 0

2 7 4 4

4 5 2 6 5

樣例輸出30*/

#include<stdio.h>

int main(){? ?

int n;? ?

scanf("%d",&n);? ?

int m[n][n];? ?

for(int i=0;i<n;i++){? ? ? ? ? ?

for(int j=0;j<=i;j++){? ? ? ? ? ? ?

scanf("%d",&m[i][j]);? ? ? ?

}? ? ?

}? ? ?

for(int i=n-1;i>0;i--) {? ? ? ?

for(int j=0;j<i;j++){? ? ? ? ?

if(m[i][j]>m[i][j+1]){? ? ? ? ? ? ?

? m[i-1][j] += m[i][j];? ? ? ? ? ?

}

else{? ? ? ? ? ? ? ?

m[i-1][j] += m[i][j+1];? ? ? ? ? ?

}? ? ?

}

? ? }? ?

printf("%d",m[0][0]);? ?

return 0;

}

圖片發自簡書App

圖片發自簡書App

圖片發自簡書App

圖片發自簡書App
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容