傳送門
這道題其實是資料結構,不難,就是資料處理方面。
我是把小時和分鐘分開儲存的
書的編號作為各個陣列的下標
vis[num]標記編號為num的書是否為借閱狀態
h[num]標記編號為num的書借出小時數
mi[num]標記編號為num的書借出分鐘數
然後在輸出中處理結果就行。
注意幾個易錯點:
1.每次一天過完後都需要重新把我們的各個陣列mst一下,因為上一天可能存在不合法的情況
2.排除不合法的情況,有借無還,無借有還這種,其中有借無還這種包含了,一本書在未被還的情況下借閱多次,那麼按照最後一次借出為準,前面的借出都是不合法的情況
(我在這個測試點wa了,因為我是按照第一次借出為準算的)
**部分:
#include
#define mst(a, n) memset(a, n, sizeof(a))
using
namespace std;
const
int n =
1e3+10;
int t;
int vis[n]
;int h[n]
;int f[n]
;int cnt;
intmain()
if(!vis[num]
|| op ==
's')
else
else
}else}}
if(!cnt)
else
printf (
"%d %.0f\n"
, cnt, ans)
;//cout << num << " " << op << " " << hour << " " << mi;
}return0;
}
PTA L1 043 閱覽室 20 分
天梯圖書閱覽室請你編寫乙個簡單的圖書借閱統計程式。當讀者借書時,管理員輸入書號並按下s鍵,程式開始計時 當讀者還書時,管理員輸入書號並按下e鍵,程式結束計時。書號為不超過1000的正整數。當管理員將0作為書號輸入時,表示一天工作結束,你的程式應輸出當天的讀者借書次數和平均閱讀時間。注意 由於線路偶爾...
L1 043 閱覽室 (20 分)
天梯圖書閱覽室請你編寫乙個簡單的圖書借閱統計程式。當讀者借書時,管理員輸入書號並按下s鍵,程式開始計時 當讀者還書時,管理員輸入書號並按下e鍵,程式結束計時。書號為不超過1000的正整數。當管理員將0作為書號輸入時,表示一天工作結束,你的程式應輸出當天的讀者借書次數和平均閱讀時間。注意 由於線路偶爾...
L1 043 閱覽室 (20 分
天梯圖書閱覽室請你編寫乙個簡單的圖書借閱統計程式。當讀者借書時,管理員輸入書號並按下s鍵,程式開始計時 當讀者還書時,管理員輸入書號並按下e鍵,程式結束計時。書號為不超過1000的正整數。當管理員將0作為書號輸入時,表示一天工作結束,你的程式應輸出當天的讀者借書次數和平均閱讀時間。注意 由於線路偶爾...