題目
給出 n 個學生的名字及考試成績,按照給出的順序,輸出他們的成績排名,如果兩人成績相同,則排名相同。學生名字可能會重複。
輸入第1行:乙個數 n,表示學生的數量(2 <= n <= 10000)。
第2-n+1行:現實人名name,後是成績s(1 <= s <= 10000)。
輸出輸出共n行,每行先是名字,後是成績排名。人名的順序與給出的順序相同。
輸入樣例
4ab 100
bc 90
cc 90
dd 100
輸出樣例
ab 1
bc 3
cc 3
dd 1
解題思路
利用結構體儲存輸入時的排序 名字 成績 和排名 然後先按照成績排序 把排名求出 再按照輸入排序 最後輸出 可能我想的有點複雜
**
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define int_max 0x7fffffff
#define int_min 0x80000000
typedef
long
long ll;
const
int mod =
1e9+7;
const
int n =
100000+5
;using
namespace std;
struct st
a[n]
;int
cmp(st a,st b)
return a.score > b.score;
}int
cmps
(st a,st b)
intmain()
sort
(a, a+n, cmp)
; a[0]
.paiming =1;
for(
int i =
1; i < n; i++
)else
}sort
(a, a+n, cmps)
;for
(int i =
0; i < n; i++
)return0;
}
178 分數排名
編寫乙個 sql 查詢來實現分數排名。如果兩個分數相同,則兩個分數排名 rank 相同。請注意,平分後的下乙個名次應該是下乙個連續的整數值。換句話說,名次之間不應該有 間隔 例如,根據上述給定的 scores 表,你的查詢應該返回 按分數從高到低排列 例如,根據上述給定的 scores 表,你的查詢...
87 (178)分數排名
編寫乙個 sql 查詢來實現分數排名。如果兩個分數相同,則兩個分數排名 rank 相同。請注意,平分後的下乙個名次應該是下乙個連續的整數值。換句話說,名次之間不應該有 間隔 id score 1 3.50 2 3.65 3 4.00 4 3.85 5 4.00 6 3.65 例如,根據上述給定的 s...
178 分數排名
編寫乙個 sql 查詢來實現分數排名。如果兩個分數相同,則兩個分數排名 rank 相同。請注意,平分後的下乙個名次應該是下乙個連續的整數值。換句話說,名次之間不應該有 間隔 id score 1 3.50 2 3.65 3 4.00 4 3.85 5 4.00 6 3.65 例如,根據上述給定的 s...