excel可以對一組紀錄按任意指定列排序。現請編寫程式實現類似功能。
輸入的第一行包含兩個正整數n
n(\le 10^5≤1
05
) 和c
c,其中n
n是紀錄的條數,c
c是指定排序的列號。之後有 n
n行,每行包含一條學生紀錄。每條學生紀錄由學號(6位數字,保證沒有重複的學號)、姓名(不超過8位且不包含空格的字串)、成績([0, 100]內的整數)組成,相鄰屬性用1個空格隔開。在nn
行中輸出按要求排序後的結果,即:當c=1c=
1時,按學號遞增排序;當c=2c=
2時,按姓名的非遞減字典序排序;當c=3c=
3時,按成績的非遞減排序。當若干學生具有相同姓名或者相同成績時,則按他們的學號遞增排序。
3 1
000007 james 85
000010 amy 90
000001 zoe 60
000001 zoe 60
000007 james 85
000010 amy 90
最開始的**只有 22分 (選擇排序被嫌棄了)悲傷那麼大555555
#include#includestruct excel;
struct excel sort[100005];//定義陣列的大小
/*這個是按照id進行排序,為什麼我這次用這個注釋呢!因為我喜歡(^.^)*/
void sortbyid(int n)}}
}/*這個是按照name進行排序*/
void sortbyname(int n)
if(strcmp(sort[i].name,sort[j].name)==0)}}
}}/*這個是按照成績進行排序(為什麼有按照成績排序這個東西啊!莫名的憂傷(寶寶不開心了!!))*/
void sortbygrades(int n)
if(sort[i].grades==sort[j].grades)}}
}}int main()
while(n--)
n=i;//讓n恢復成原來的樣子,好像這句話在**見過,應該是魔法小櫻。。。。。。。。
switch(c)
i=0;//計數器再次賦值為0
n--;//最後乙個不能有換行符
while(n--)
printf("%s %s %d",sort[i].id,sort[i].name,sort[i].grades);//列印最後乙個沒有換行符的資料
return 0;
}
下面是滿分的**用的是c++因為我不怎麼會快排所有只好用了c++的自帶函式sort
#include#include#includeusing namespace std;//必須寫這個不然sort會丟擲異常
struct excel;
struct excel strl[100005];//定義陣列的大小
/*這個是按照id進行排序,為什麼我這次用這個注釋呢!因為我喜歡(^.^)*/
int sortbyid(struct excel one,struct excel two)
/*這個是按照name進行排序*/
int sortbyname(struct excel one,struct excel two)
else return strcmp(one.name,two.name)<0;//返回按照名字公升序
}/*這個是按照成績進行排序(為什麼有按照成績排序這個東西啊!莫名的憂傷(寶寶不開心了!!))*/
int sortbygrades(struct excel one,struct excel two)
else return one.grades}int main()
while(n--)
n=i;//讓n恢復成原來的樣子,好像這句話在**見過,應該是魔法小櫻。。。。。。。。
switch(c)
i=0;//計數器再次賦值為0
n--;//最後乙個不能有換行符
while(n--)
printf("%s %s %d",strl[i].id,strl[i].name,strl[i].grades);//列印最後乙個沒有換行符的資料
return 0;
}
7 8 模擬EXCEL排序 (25 分)
excel可以對一組紀錄按任意指定列排序。現請編寫程式實現類似功能。輸入的第一行包含兩個正整數n 10 5 和c,其中n是紀錄的條數,c是指定排序的列號。之後有 n行,每行包含一條學生紀錄。每條學生紀錄由學號 6位數字,保證沒有重複的學號 姓名 不超過8位且不包含空格的字串 成績 0,100 內的整...
7 9 模擬EXCEL排序 (25 分
excel可以對一組紀錄按任意指定列排序。現請編寫程式實現類似功能。輸入的第一行包含兩個正整數n 10 5 和c,其中n是紀錄的條數,c是指定排序的列號。之後有 n行,每行包含一條學生紀錄。每條學生紀錄由學號 6位數字,保證沒有重複的學號 姓名 不超過8位且不包含空格的字串 成績 0,100 內的整...
7 1 模擬EXCEL排序 25分
excel可以對一組紀錄按任意指定列排序。現請編寫程式實現類似功能。輸入格式 輸入的第一行包含兩個正整數n 10 5 和c,其中n是紀錄的條數,c是指定排序的列號。之後有 n行,每行包含一條學生紀錄。每條學生紀錄由學號 6位數字,保證沒有重複的學號 姓名 不超過8位且不包含空格的字串 成績 0,10...