HDU1029時鐘(排序)

2022-04-04 07:27:08 字數 1491 閱讀 1915

題意:是用兩個指標的乙個模擬時鐘的時針和分針。兩個指標形成乙個角度。角度測量兩個指標之間的最小角度。兩隻手之間的角度是大於或等於0,且小於或等於180度的度量。由於乙個序列的五個不同的寫入時間,格式為hh:mm,其中......是兩個數字較完整的24小時( 00 <= ...... <= 23)和mm(00 <=公釐<= 59),你發現的中位數,也就是寫乙個程式,第三個元素的排序序列在兩個數字代表分鐘非遞減順序及其關聯的角度。例如,假設您將得到乙個序列(06:05,07:10,03:00,21:00,下午12:55)次。關係被打破這樣一種方式,乙個較早的時間排在稍後的時間之前。因為排序的序列(12:55,03:00,21:00,06:05,07:10),你輸出的是21:00。

題解:排序;

錯誤分析:1:小時和分鐘不一定是整10或5;

2:時針隨著分針的變化而變化;所以時針與12的角度為angle=(hh+mm/60)*30;

3:輸出格式可以用printf("%02d%02d",time[2].hh,time[2].mm);

上網搜了乙個解題報告看到了這種數出格式,然後就試了一下,發現比我寫的

if(time[2].hh<10)

printf("0%d",time[2].hh);

else

printf("%d",time[2].hh);

if(time[2].mm<10)

printf(":0%d\n",time[2].mm);

else

printf(":%d\n",time[2].mm);

2是寬度很簡單。如果整數不夠2列就補上0

比如printf("%02d" ,3);

結果就是

03如果大於2沒有影響

printf("%02d",1234);

1234

**實現

#include#include#includeusing namespace std;

typedef struct clock

clock;

clock time[6];

bool cmp( clock x1,clock x2 )//比較

sort(time,time+5,cmp);//排序

printf("%02d:%02d\n",time[2].hh,time[2].mm);

}return 0;

}

排序的相關題目

hdu1029 ignatius and the princess iv

**#include#include#define max 1000000

using namespace std;

int a[max];

int main()

int b[45000000];

int main()

{ int i,j,k,n,m,a[3002];

while(scanf("%d %d",&n,&m)!=eof)

{k=0;

for(i=0;i

HDU1029時鐘(排序)

題意 是用兩個指標的乙個模擬時鐘的時針和分針。兩個指標形成乙個角度。角度測量兩個指標之間的最小角度。兩隻手之間的角度是大於或等於0,且小於或等於180度的度量。由於乙個序列的五個不同的寫入時間,格式為hh mm,其中.是兩個數字較完整的24小時 00 23 和mm 00 公釐 59 你發現的中位數,...

kuangbin專題十二 HDU1029 水題

題意 n n為奇數 個數,存在乙個數出現的次數大於 n 1 2次,求這個特殊的數。題解 因為次數大於 n 1 2那麼排序完之後輸出a n 1 2 肯定就會出現這個特殊的數的。然後因為這是個dp專題,我就想,這題是怎麼dp的,後來一看,發現怎麼說呢,不是轉移方程,而是乙個大概是或者說是類似於dp的思路...

1 時鐘無縫切換

時鐘切換分成兩種方式,普通切換和去毛刺無縫切換。普通切換 就是不關心切出的時鐘是否存在毛刺,這種方式電路成本小。如果時鐘切換時,使用此時鐘的模組電路處於非工作狀態,或者模組內電路被全域性復位訊號reset住的,即使切出毛刺也不會導致dff誤觸發,這樣的模組可以選擇用此種切換方式。寫法很簡單assig...