習題8 7 字串排序

2021-10-25 19:26:09 字數 943 閱讀 7184

本題要求編寫程式,讀入5個字串,按由小到大的順序輸出。

輸入為由空格分隔的5個非空字串,每個字串不包括空格、製表符、換行符等空白字元,長度小於 80。

按照以下格式輸出排序後的結果:

after sorted:

每行乙個字串

red yellow blue green white
after sorted:

blue

green

redwhite

yellow

分析:此題並不難,但確實把我卡住了。原因有三。

第一:拖延症,選擇困難症。我一開始的想法是用冒泡or選擇排序,但是覺得雙迴圈加上strcmp()函式時間複雜度超級大,就開始向其他方法,半天想不出,拖了好久(是個壞毛病)。但其實也就五組字串,可以不用先考慮複雜度。

第二:字串的次序交換不同於整型陣列元素的次序交換。整型元素排序只需用到乙個temp作為媒介進行交換;而字串需要temp[max]字元陣列(作為字串媒介) 和strcpy()函式(起到字串的「賦值」作用)。這一點也是我開始沒想到的。

第三:氣泡排序有點忘記了,得複習一下。

#include

#include

#define max 80

#define n 5

intmain()

}printf

("after sorted:\n");

for(i=

0;i)printf

("%s\n"

,word[i]);

return0;

}

習題8 7 字串排序

習題8 7 字串排序 20分 本題要求編寫程式,讀入5個字串,按由小到大的順序輸出。輸入為由空格分隔的5個非空字串,每個字串不包括空格 製表符 換行符等空白字元,長度小於80。按照以下格式輸出排序後的結果 after sorted 每行乙個字串red yellow blue green whitea...

習題8 7 字串排序(20 分)

本題要求編寫程式,讀入5個字串,按由小到大的順序輸出。輸入為由空格分隔的5個非空字串,每個字串不包括空格 製表符 換行符等空白字元,長度小於80。按照以下格式輸出排序後的結果 after sorted 每行乙個字串red yellow blue green whiteafter sorted blu...

習題8 7 字串排序 20分

本題要求編寫程式,讀入5個字串,按由小到大的順序輸出。輸入格式 輸入為由空格分隔的5個非空字串,每個字串不包括空格 製表符 換行符等空白字元,長度小於80。輸出格式 按照以下格式輸出排序後的結果 after sorted 每行乙個字串 輸入樣例 red yellow blue green white...