7-37 模擬excel排序 (25 分)
excel可以對一組紀錄按任意指定列排序。現請編寫程式實現類似功能。
輸入格式:
輸入的第一行包含兩個正整數n(≤10
5 ) 和c,其中n是紀錄的條數,c是指定排序的列號。之後有 n行,每行包含一條學生紀錄。每條學生紀錄由學號(6位數字,保證沒有重複的學號)、姓名(不超過8位且不包含空格的字串)、成績([0, 100]內的整數)組成,相鄰屬性用1個空格隔開。
輸出格式:
在n行中輸出按要求排序後的結果,即:當c=1時,按學號遞增排序;當c=2時,按姓名的非遞減字典序排序;當c=3時,按成績的非遞減排序。當若干學生具有相同姓名或者相同成績時,則按他們的學號遞增排序。
輸入樣例:
3 1000007 james 85
000010 amy 90
000001 zoe 60
輸出樣例:
000001 zoe 60
000007 james 85
000010 amy 90
其實就是對sort排序進行改造,用結構體存三組資料。
版本一:string類 (佔記憶體大,但是過載了許多符號)
#include
#include
using namespace std;
struct node
;bool cmp1
(const node &a,
const node &b)
bool cmp2
(const node &a,
const node &b)
bool c***
(const node &a,
const node &b)
intmain()
switch
(c)for
(int i =
0;i < n;i++
)return0;
}
版本二:char陣列
#include
#include
#include
using namespace std;
struct node
;bool cmp1
(const node &a,
const node &b)
bool cmp2
(const node &a,
const node &b)
bool c***
(const node &a,
const node &b)
intmain()
switch
(c)for
(int i =
0;i < n;i++
)return0;
}
版本三:改造優先佇列(**寫的有點逗…)
#include
#include
using namespace std;
struct node_1};
struct node_2};
struct node_3};
intmain()
for(
int i =
0;i < n;i++
)break;}
case2:
for(
int i =
0;i < n;i++
)break;}
case3:
for(
int i =
0;i < n;i++
)break;}
}return0;
}
7 37 模擬EXCEL排序
7 37 模擬excel排序 25 分 excel可以對一組紀錄按任意指定列排序。現請編寫程式實現類似功能。輸入的第一行包含兩個正整數n 10 5 和c,其中n是紀錄的條數,c是指定排序的列號。之後有 n行,每行包含一條學生紀錄。每條學生紀錄由學號 6位數字,保證沒有重複的學號 姓名 不超過8位且不...
7 37 模擬EXCEL排序 25分
excel可以對一組紀錄按任意指定列排序。現請編寫程式實現類似功能。輸入格式 輸入的第一行包含兩個正整數n 10 5 和c,其中n是紀錄的條數,c是指定排序的列號。之後有 n行,每行包含一條學生紀錄。每條學生紀錄由學號 6位數字,保證沒有重複的學號 姓名 不超過8位且不包含空格的字串 成績 0,10...
模擬EXCEL排序
excel可以對一組紀錄按任意指定列排序。現請編寫程式實現類似功能。輸入的第一行包含兩個正整數n 10 5 和 c,其中 n是紀錄的條數,c是指定排序的列號。之後有 n行,每行包含一條學生紀錄。每條學生紀錄由學號 6位數字,保證沒有重複的學號 姓名 不超過8位且不包含空格的字串 成績 0,100 內...