51nod 3198 分數排名

2021-10-08 18:53:23 字數 1428 閱讀 3492

題目

給出 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...