題目描述
用一維陣列儲存學號和成績,然後,按成績排序輸出。
輸入描述:
輸入第一行包括乙個整數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...