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

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

結構體模板

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 }

1004 成績排名(結構體)

讀入 n 0 名學生的姓名 學號 成績,分別輸出成績最高和成績最低學生的姓名和學號。輸入格式 每個測試輸入包含 1 個測試用例,格式為 第 1 行 正整數 n 第 2 行 第 1 個學生的姓名 學號 成績 第 3 行 第 2 個學生的姓名 學號 成績 第 n 1 行 第 n 個學生的姓名 學號 成績...

1004成績排名

讀入n名學生的姓名 學號 成績,分別輸出成績最高和成績最低學生的姓名和學號。輸入格式 每個測試輸入包含1個測試用例,格式為 第1行 正整數n 第2行 第1個學生的姓名 學號 成績 第3行 第2個學生的姓名 學號 成績 第n 1行 第n個學生的姓名 學號 成績其中姓名和學號均為不超過10個字元的字串,...

1004 成績排名

讀入n名學生的姓名 學號 成績,分別輸出成績最高和成績最低學生的姓名和學號。輸入格式 每個測試輸入包含1個測試用例,格式為 第1行 正整數n 第2行 第1個學生的姓名 學號 成績 第3行 第2個學生的姓名 學號 成績 第n 1行 第n個學生的姓名 學號 成績其中姓名和學號均為不超過10個字元的字串,...