題目連結:
題目大意:
第一列給定一正整數 N (1 ≦ N ≦ 100),代表有 N 位同學。接著有 N 列輸入,每列給定兩的字串 ID 、 s (1 ≦ |s| ≦ 10),代表一位學生的學號以及英文姓名。
學號固定九個字元長,學號只會是 4 、 6 、 8 開頭,而學號的最後一個字元為英文字母代表該學生的學院代碼。
請將這 N 位同學依照學院代碼按字典序排序。如果學院代碼一致,則看學號開頭由小到大排。如果還是一致,則按照輸入的順序從先到後排。
輸出時,請先輸出該學生的學院代碼再輸出學生的姓名。輸出格式參見範例輸出。
5
60547020S Wayne
40547036S Lisa
40707001A Alber
80652135E Frank
40923313A Roger
A: Alber
A: Roger
E: Frank
S: Lisa
S: Wayne
用一個結構(Struct)把所有資料包在一起(可以將學號拆成開頭、學院代碼以及剩下的部分),然後寫一個符合題目條件的布林函數,如
這題(不過這題我的寫法是多載(Overload)運算子,即幫結構定義運算子的內容)。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。