核心題都會了嗎?這些題目需要把好幾個技巧組合起來,想挑戰的話可以試試看。
🚀 完整雙清單排序 L3|挑戰
挑戰重點:把示範 seclect-009 的一回合重複做:第 i 回合(i 從 1 到 4)從第 i 個位置找到最後,找出最高分的位置,姓名和分數一起和第 i 個位置交換。
小華已經完成「連動選擇排序第一回合」的練習,
現在老師希望他能夠完成完整的連動排序任務。
桌上有兩個清單:
學生姓名清單
對應的分數清單
相同位置代表同一位學生。
請你使用選擇排序法,依照分數由高到低的順序,
將所有學生進行排序。
排序時必須注意:
比較時只比較「分數」
交換時「姓名與分數必須一起交換」
不可使用任何排序相關的積木或指令。
注意事項:
1. 若分數相同,學生的相對順序不限。
2. 必須完成整個排序流程
- 輸入
- 第1行:5 個姓名(以空格隔開)。
第2行:5 個整數,代表對應的分數(以空格隔開)。
- 輸出
- 第1行:排序完成後的 5 個姓名(以空格隔開)。
第2行:排序完成後的 5 個分數(以空格隔開)。
範例1
輸入
Amy Bob Carl Dora Eric
80 90 70 85 60
輸出
Bob Dora Amy Carl Eric
90 85 80 70 60
範例2
輸入
Tom May John Lily Ken
95 88 92 75 60
輸出
Tom John May Lily Ken
95 92 88 75 60
💡 需要提示嗎?
把上一題的「第一回合」重複做完;每次交換分數時,姓名也要一起交換。
🚀 排序結果應用-成績排行榜 L3|挑戰
挑戰重點:先完成上一題的連動排序,再用迴圈依序說出「名次 姓名 分數」,名次就是迴圈的 i。
小華已經完成「完整雙清單排序」,並且將學生依照分數由高到低
排序完成。
現在老師希望小華能夠應用排序後的結果,
製作一份簡單的成績排行榜。
請你寫一個程式,完成以下任務:
先依照分數由高到低排序學生資料
再依排序後的結果,輸出每位學生的名次、姓名與分數
相同位置的姓名與分數必須保持連動。
注意事項:
1. 名次從 1 開始編號。
2. 若分數相同,名次仍依排序後的順序編號即可。
3. 不可使用任何排序相關的積木或指令
- 輸入
- 第1行:5 個姓名(以空格隔開)。
第2行:5 個整數,代表對應的分數(以空格隔開)。
- 輸出
- 輸出 5 行,每一行依序輸出:
名次 姓名 分數(以空格隔開)。
範例1
輸入
Amy Bob Carl Dora Eric
80 90 70 85 60
輸出
1 Bob 90
2 Dora 85
3 Amy 80
4 Carl 70
5 Eric 60
範例2
輸入
Tom May John Lily Ken
95 88 92 75 60
輸出
1 Tom 95
2 John 92
3 May 88
4 Lily 75
5 Ken 60
💡 需要提示嗎?
先完成連動排序,再依序輸出名次、姓名、分數。