-
http://ac.jobdu.com/problem.php?pid=1022
-
-
題目描述:
-
現有公園遊船租賃處請你編寫一個租船管理系統。當遊客租船時,管理員輸入船號並按下S鍵,系統開始計時;當遊客還船時,管理員輸入船號並按下E鍵,系統結束計時。船號為不超過100的正整數。當管理員將0作為船號輸入時,表示一天租船工作結束,系統應輸出當天的遊客租船次數和平均租船時間。
注意:由於線路偶爾會有故障,可能出現不完整的紀錄,即只有租船沒有還船,或者只有還船沒有租船的紀錄,系統應能自動忽略這種無效紀錄。
-
輸入:
-
測試輸入包含若干測試案例,每個測試案例為一整天的租船紀錄,格式為:
船號(1~100) 索引值(S或E) 發生時間(小時:分鐘)
每一天的紀錄保證按時間遞增的順序給出。當讀到船號為-1時,全部輸入結束,相應的結果不要輸出。
-
輸出:
-
對每個測試案例輸出1行,即當天的遊客租船次數和平均租船時間(以分鐘為單位的精確到個位的整數時間)。
-
範例輸入:
-
1 S 08:102 S 08:351 E 10:002 E 13:160 S 17:000 S 17:003 E 08:101 S 08:202 S 09:001 E 09:200 E 17:00-1
-
範例輸出:
-
2 1960 01 60
#include <stdio.h>int main(){int index;char type;int end[101];int start[101] = {-1};scanf("%d",&index);int sum = 0;int cnt = 0;int h,m,i;while(index != -1){if(index == 0){for(i=0; i<101; i++)start[i] =-1;if(cnt != 0) //因為要四捨五入。不能直接用int類型輸出printf("%d %.0lf\n",cnt,((double)(sum/(double)cnt)));elseprintf("0 0\n");sum = 0;cnt = 0;}getchar(); //這個地方是為了正常讀取type = getchar();scanf("%d:%d",&h,&m);if(type == 'E'){end[index] = h*60 + m;if(start[index] != -1){ //說明有租船記錄sum += (end[index] - start[index]);cnt ++;}}elsestart[index] = h*60 + m;scanf("%d",&index);}return 0;}
/************************************************************** Problem: 1022 User: 從此醉 Language: C Result: Accepted Time:10 ms Memory:908 kb****************************************************************/