免費開始練習
moea_joint_essay 110年 [統計資訊] 資料庫及資料探勘、程式設計

第 六 題

某電梯管理系統控制多台電梯,當某樓層之等待區按下按鈕時,會將其樓層號碼傳送到系統之共用 Queue中,系統會定時自共用 Queue中讀取一筆目標樓層號碼,並尋找離此目標樓層最近的電梯來提供服務。請使用下列所有的函式,來撰寫一選取電梯函式 SelElev,輸入為電梯的總數,其傳回為離目標樓層最近的電梯號碼,但當未選擇到電梯時,則傳回 0。另外,當電梯總數為 N時,電梯號碼為1到 N;樓層號碼為 1代表 1樓、2代表 2樓、0 代表地下 1 樓、-1 代表地下 2 樓(依此類推)。(20 分)
int getqueue() /* 自共用 Queue 中取得下一筆目標樓層號碼。其傳回為下一筆目標樓層號碼,當無資料時,則傳回 999。 */
int getcurfloor(int elevid) /* 取得指定電梯目前所在的樓層。輸入為電梯號碼,其傳回為此電梯目前所在的樓層,但當此電梯不提供服務時,則傳回 999。 */
📝 此題為申論題

思路引導 VIP

先用 getqueue 取目標,沒有則回 0。接著歷遍電梯 1 到 N,用 getcurfloor 得目前樓層,如果!=999則計算與目標距離,找最小距離的電梯回傳。

🤖
AI 詳解 AI 專屬家教
int SelElev(int N) {
    int target_floor = getqueue();
▼ 還有更多解析內容

🏷️ 相關主題

程式設計演算法與資料結構實作
查看更多「[統計資訊] 資料庫及資料探勘、程式設計」的主題分類考古題