結構體陣列排序 1004 成績排名 pta

2022-08-05 11:57:11 字數 1429 閱讀 6581

結構體模板

1

struct

stu2

;

sort是用快速排序實現的,屬於不穩定排序,stable_sort是用歸併排序實現的,因此是穩定的。從此以後,為了保險起見我打算使用stable_sort。

不管是sort還是stable_sort預設都是升序,有些情況要求降序等更加複雜的情況,利用預設的升序就會變得比較麻煩(其實都是一樣的)

因此為了方便,可以自定義一個bool型別的cmp函式

1

bool cmp(int a,intb)2

以上是普通的cmp(非陣列cmp)

面對結構體陣列降序排序,可以像以下一樣:

bool

cmp(stu a,stu b)

1004 成績排名 (20分)

讀入 n(>)名學生的姓名、學號、成績,分別輸出成績最高和成績最低學生的姓名和學號。

每個測試輸入包含 1 個測試用例,格式為

第 1 行:正整數 n

第 2 行:第 1 個學生的姓名 學號 成績

第 3 行:第 2 個學生的姓名 學號 成績

... ... ...

第 n+1 行:第 n 個學生的姓名 學號 成績

其中姓名學號均為不超過 10 個字元的字串,成績為 0 到 100 之間的一個整數,這裡保證在一組測試用例中沒有兩個學生的成績是相同的。

對每個測試用例輸出 2 行,第 1 行是成績最高學生的姓名和學號,第 2 行是成績最低學生的姓名和學號,字串間有 1 空格。

3

joe math990112 89

mike cs991301 100

mary ee990830 95

mike cs991301

joe math990112

單位: 浙江大學

時間限制: 400 ms

記憶體限制: 64 mb

**長度限制: 16 kb

完整**:

1 #include2

using

namespace

std;

3struct

stu4;9

bool

cmp(stu a,stu b)

1013

intmain()

1422 stable_sort(stu,stu+n,cmp);

23 cout<0].name<<"

"<0].num<24 cout<1].name<<"

"<1].num<25 }