本題要求編寫程式,讀入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...