時間限制:1秒 記憶體限制:32m 特殊題型:否
題目描述:
有n個學生的資料,將學生資料按照成績高低排序,如果成績相同則按姓名字元的字母序排序,如果姓名的字母序也想用則按照學生的年齡排序,並輸出n個學生排序後的資訊。
輸入
測試資料有多組,每組輸入第一行有乙個整數n(n<=1000),接下來的n行包括n個學生的資料。每個學生的資料報括姓名(長度不超過100個字串)、年齡(整數型)、成績(小於等於100的整數)。
輸出
將學生資訊按成績進行排序,成績相同的則按姓名的字母進行排序。然後輸出學生的資訊,按照如下格式:姓名 年齡 成績
樣例輸入
3 abc 20 99
bcd 19 97
bed 20 97
樣例輸出
bcd 19 97
bed 20 97
abc 20 99
解題
本題不再是基本型別進行排序,而是一些由基本型別組成的結構體進行排序
**2.1
#include
#include
#include
using
namespace
std;
struct ebuf[1000];
bool cmp(e a,e b)
int main()
sort(buf,buf+n,cmp);
for (int i=0;iprintf("%s %d %d\n",buf[i].name,buf[i].age,buf[i].score);}}
return
0;}
直接定義結構體的小於運算子來說明排序
指明結構體小於運算子
呼叫sort函式時,只需說明會起始位置和結束位置。
**2.2 (沒有執行出來!!!有問題)
#include
#include
#include
using
namespace
std;
struct e
sort(buf,buf +n);
for (int i=0;iprintf("%s %d %d\n",buf[i].score,buf[i].age,buf[i].score);}}
return
0;
}
68 成績排序
題目描述 查詢和排序 題目 輸入任意 使用者,成績 序列,可以獲得成績從高到低或從低到高的排列,相同成績 都按先錄入排列在前的規則處理。例示 jack 70 peter 96 tom 70 smith 67 從高到低 成績 peter 96 jack 70 tom 70 smith 67 從低到高 ...
1178 成績排序
問題描述 給出班裡某門課程的成績單,請你按成績從高到低對成績單排序輸出,如果有相同分數則名字字典序小的在前。輸入 第一行為n 0 n 20 表示班裡的學生數目 接下來的n行,每行為每個學生的名字和他的成績,中間用單個空格隔開。名字只包含字母且長度不超過20,成績為乙個不大於100的非負整數。輸出 把...
1178 成績排序
問題描述 給出班裡某門課程的成績單,請你按成績從高到低對成績單排序輸出,如果有相同分數則名字字典序小的在前。輸入 第一行為n 0 n 20 表示班裡的學生數目 接下來的n行,每行為每個學生的名字和他的成績,中間用單個空格隔開。名字只包含字母且長度不超過20,成績為乙個不大於100的非負整數。輸出 把...