1.在主函式中輸入10個字串,用另乙個函式排序,在主函式中輸出排好序的字串;用指標陣列處理;
解:首先要解決乙個問題,怎麼輸入多個字串?
//可以用指標陣列儲存多個字串常量;
char *str = ;
//指標陣列,其中的每乙個元素都是指標,指向10個字串常量的首位址;
//指標陣列儲存10個字串常量的首位址;通過str[下標]可以輸出字串常量;
第二個要解決的問題是怎麼交換兩個字串常量?
//交換兩個字串常量,通過交換指標指向的位址來交換兩個字串常量;
const char *str1 = "haha";
const char *str2 = "nihao";
printf("%s,%s\n",str1,str2);
const char *tmp = str1;
str1 = str2;
str2 = tmp;
printf("%s,%s\n",str1,str2);
第三個問題,怎麼傳遞指標陣列的引數?指標陣列的形參是乙個二級指標;
字串排序用strcmp函式比較字串的大小。
void strsort(char **str,int len)//指標陣列的形參是乙個二級指標;
} }
字串排序的**跟氣泡排序十分類似;可以模擬一下;
氣泡排序:
氣泡排序(從小到大):兩兩比較,小的放前面,大的放後面;
第一趟(假設有n個數):比較n-1趟;
第二趟:比較n-2趟;
第n-1趟:比較n-(n-1)=1趟;
void bubblesort(int *arr,int len)
} }}
字串 字串排序
頻率統計 將頻率轉換為索引 資料分類 回寫頻率統計 統計每個字元出現的次數 將頻率轉換為索引 確定不同字元首位置 從右到左檢查檢查鍵中的字元 public class lsd public class msd public static void sort string a private stat...
《演算法》 字串 字串排序
輸入字串和字串對應的組別 組別也是字串的鍵 在滿足組別有小到大排序的情況下,將字串按字母順序排序 第一步,記錄組別的頻率 為了得到某個字串在排序後的範圍,比如組別2肯定在組別1後面,在組別3前面,把每個組別有多少個人記錄下來,方便我們定位 第三步,分類 該組別的位置起點 向後挪一位 因為當前位被用了...
字串排序
從鍵盤輸入10個學生的姓名和成績,請按字典序排列學生的姓名並輸出 姓名和成績對應關係保持不變 輸入共11行,前10行每行是乙個學生的姓名,最後一行是10個用空格分開的整數表示對應的10個學生成績。輸出姓名按字典序排列後的學生姓名和成績,共10行,每個學生的姓名和成績佔一行,姓名和成績間用逗號分開。b...