成績排序 多關鍵字

2021-10-02 18:39:13 字數 1063 閱讀 4939

題目描述

用一維陣列儲存學號和成績,然後,按成績排序輸出。

輸入描述:

輸入第一行包括乙個整數n(1<=n<=100),代表學生的個數。 接下來的n行每行包括兩個整數p和q,分別代表每個學生的學號和成績。

輸出描述:
按照學生的成績從小到大進行排序,並將排序後的學生資訊列印出來。 如果學生的成績相同,則按照學號的大小進行從小到大排序。

示例:

輸入:

3

1 90

2 87

3 92

輸出:

2 87

1 90

3 92

做題思路:

對這種根據兩個關鍵字進行排序的題,最好的方法就是定義結構體,然後利用stl中自帶的sort函式對元素進行排序,要使用此函式只需引用#include即可。

**展示:

#include

#include

using

namespace std;

struct node

;bool

comp

(node a,node b)

else

}int

main()

sort

(a,a+n,comp)

;for

(int i=

0;i)return0;

}

知識拓展:

sort()排序函式用法:

sort(first_pointer,first_pointer+n,cmp)

引數3:預設可以不填,如果不填sort會預設按陣列公升序排序。也可以自定義乙個排序函式,改排序方式為降序什麼的。

例如:

bool

compare

(int a,

int b)

lintcode多關鍵字排序

給定 n 個學生的學號 從 1 到 n 編號 以及他們的考試成績,表示為 學號,考試成績 請將這些學生按考試成績降序排序,若考試成績相同,則按學號公升序排序。使用sort方法,先對item0排序,再對item1排序,優先順序越高的排序越後做 class solution param array th...

多關鍵字排序。c

多關鍵字排序 乙個長方形有長和寬,分別設為 a 和 b,現在想對一些長方形進行排序。有一種新的排序方法。如下 我們按照兩個長方形的a b值來對他們按降序排序,如果有重複,按照b值公升序排序,如果還有重複,按照輸入的順序排序。也就是說,是多關鍵字排序 第1關鍵字,a b,降序 第2關鍵字,b,公升序 ...

多關鍵字的分組排序

首先說下order by order by asc是公升序 一般預設是公升序 降序的話是order by desc 如果我們想按照指定的字段順序來排列怎麼做呢 有乙個表t 以下是select from t id name country 1 a tw 2 b jp 3 c us 4 d jp 5 e...