5 3 模擬EXCEL排序 25分

2021-08-02 02:21:04 字數 2229 閱讀 8735

excel可以對一組紀錄按任意指定列排序。現請編寫程式實現類似功能。

輸入的第一行包含兩個正整數n

n(\le 10^5≤1

0​5​

​) 和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...