excel可以對一組紀錄按任意指定列排序。現請你編寫程式實現類似功能。
input
測試輸入包含若干測試用例。每個測試用例的第1行包含兩個整數 n (<=100000) 和 c,其中 n 是紀錄的條數,c 是指定排序的列號。以下有 n
行,每行包含一條學生紀錄。每條學生紀錄由學號(6位數字,同組測試中沒有重複的學號)、姓名(不超過8位且不包含空格的字串)、成績(閉區間[0, 100]內的整數)組成,每個專案間用1個空格隔開。當讀到 n=0 時,全部輸入結束,相應的結果不要輸出。
output
對每個測試用例,首先輸出1行「case i:」,其中 i 是測試用例的編號(從1開始)。隨後在 n 行中輸出按要求排序後的結果,即:當 c=1 時,按學號遞增排序;當 c=2時,按姓名的非遞減字典序排序;當 c=3
時,按成績的非遞減排序。當若干學生具有相同姓名或者相同成績時,則按他們的學號遞增排序。
sample input
3 1
000007 james 85
000010 amy 90
000001 zoe 60
4 2000007 james 85
000010 amy 90
000001 zoe 60
000002 james 98
4 3000007 james 85
000010 amy 90
000001 zoe 60
000002 james 90
0 0
sample output
case 1:
000001 zoe 60
000007 james 85
000010 amy 90
case 2:
000010 amy 90
000002 james 98
000007 james 85
000001 zoe 60
case 3:
000001 zoe 60
000007 james 85
000002 james 90
000010 amy 90
不知道為什麼string的比較總是失敗,,,有點懵。。等下繼續查原因,先記錄一下
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace std;
#define maxsize 30
struct stu
;bool
cmpid
(stu x, stu y)
bool
cmpname
(stu x, stu y)
bool
cmpgrade
(stu x, stu y)
intmain()
switch
(b)for
(int i =
0; i < a; i++
) cin >> a >> b;
}return0;
}
還有乙個vb問題
這是為什麼啊?望高人指點啊.private sub form load dim machine as string dim machine decode as string dim txtsql as string dim mrc as adodb.recordset dim msgtext as ...
排序問題 堆排序
堆排序是基於優先佇列 使用基於陣列的大頂堆或者小頂堆 的排序,是乙個 建堆 刪除 調整 刪除 調整 的過程。在 個元素組成的二叉堆中,建堆的時間複雜度是o n 之後執行n次刪除堆頂元素和調整 時間複雜度為o logn 將每次刪除的元素一次放入乙個序列中便得到了乙個有序數列,時間複雜度為o n o n...
排序問題 希爾排序
1 演算法改進要點 直接插入排序法,在待排序的關鍵字序列基本有序且關鍵字個數n較少時,其演算法的效能最佳。希爾排序又稱為縮小增量排序法,是一種基於插入思想的排序方法,他利用了直接插入排序的最佳效能,首先將待排序的關鍵字序列分成若干個較小的子串行上,對子序列進行直接插入排序,使整個整個待排序序列排好序...