計算機機試練習題 排序二

2021-08-20 17:49:29 字數 1050 閱讀 8009

題目描述:

有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的整數,不考慮非法輸入,各個整數之間以逗號 分隔,輸入...