題目描述:
有n個學生的資料,將學生資料按成績高低排序,如果成績相同則按姓名字元的字母序排序,如果姓名的字母序也相同則按照學生的年齡排序,並輸出n個學生排序後的資訊。
輸入:
測試資料有多組,每組輸入第一行有乙個整數n(n<=1000),接下來的n行包括n個學生的資料。
每個學生的資料報括姓名(長度不超過100的字串)、年齡(整形數)、成績(小於等於100的正數)。
輸出:
將學生資訊按成績進行排序,成績相同的則按姓名的字母序進行排序。
然後輸出學生資訊,按照如下格式:
姓名 年齡 成績
樣例輸入:
3
abc 20 99
bcd 19 97
bed 20 97
樣例輸出:
bcd 19 97
bed 20 97
abc 20 99
這個題使用之前提到的sort來解決。
#include#include#includeusing namespace std;
struct e
buf[1000];
bool cmp(e a, e b)
int main()
buf[1000];
int cmp(const void *a, const void *b)
int tmp = strcmp(((e*)a)->name, ((e*)b)->name);
if(tmp != 0) return tmp>0;
else return ((e*)a)->age - ((e*)b)->age;
}int main()
qsort(buf, n, sizeof(e), cmp);
for(int i=0; i}
return 0;
}
計算機機試練習題 Hash應用四
時間限制 1 秒 記憶體限制 32 兆 題目描述 有乙個長度為整數l 1 l 10000 的馬路,可以想象成數軸上長度為l的乙個線段,起點是座標原點,在每個整數座標點有一棵樹,即在0,1,2,l共l 1個位置上有l 1棵樹。現在要移走一些樹,移走的樹的區間用一對數字表示,如 100 200表示移走從...
計算機機試練習題 Hash的應用一
讀入n名學生的成績,將獲得某一給定分數的學生人數輸出。測試輸入包含若干測試用例,每個測試用例的格式為 第1行 n 第2行 n名學生的成績,相鄰兩數字用乙個空格間隔。第3行 給定分數 當讀到n 0時輸入結束。其中n不超過1000,成績分數為 包含 0到100之間的乙個整數。對每個測試用例,將獲得給定分...
華為機試練習題 6 整數排序
題目 描述 實現輸入一組大於等於0的整數,根據從小到大的順序排序後輸出,排序後有連續數時,只輸出連續數中最小和最大的兩個數。題目類別 排序 難度 高階 執行時間限制 10sec 記憶體限制 128mbyte 階段 入職前練習 輸入 一組大於等於0的整數,不考慮非法輸入,各個整數之間以逗號 分隔,輸入...