下面通過案例解決。
[問題描述]編寫乙個程式, 從鍵盤接收乙個字串, 然後按照字元順序從小到大進行排序,並刪除重複的字元。
[輸入形式]從鍵盤輸入乙個字串,以回車結束輸入。要求程式可以處理含有空格的字串。
[輸出形式]程式接收此字串,然後將其按照字元asci碼值從小到大的順序進行排序,並刪除重複的字元輸出。如果字串為空,輸
出地應該為空。
[樣例輸入] badacgegfacb
[樣例輸出] abcdefg
[樣例說明]輸入badacgegfacb,然後排序刪除重複字元得到abcdefg。
#include
#include
intmain()
,str2[
256]=;
int i;
gets
(str1)
;for
(i=0
;str1[i]
;i++
)for
(i=0
;i!=
256;i++
)putchar
('\n');
return0;
}
str1是輸入的字串陣列;
str2是用來存str1的;用ascii處理
第乙個for是
例如:str2[str[i]]=1;給str2賦值;
就如下str1:1 2 2 3 3 4 5 \0
str2的大小:0 1 2 3 4·····255
str1:1 2 3 4 5 \0
str2:0 1 2 · · · · · 49 50 51 52 53 0(i)
0 0 0 ·········1 1 1 1 1 0
(無論有多少個重複的都是1,所以只保留乙個)
第二個for
輸出 i 的值,對應str2[i]的值==1;就輸出i。
以%c 輸出
我是小白,加油。
本文,僅供學習保留。
快速排序和歸併排序(C語言)
下屬專案 測試用例數量 快速排序無1 歸併排序無1 快速排序 我們以公升序為例 的關鍵在於 把第乙個值看做是樞紐值 pivot 利用兩個座標把這個樞紐值傳到序列的合適位置,使得左邊的值均比樞紐值小,右邊的值均比樞紐值大對樞紐值左邊的序列 不包括樞紐值 做第一步的處理,對樞紐值右邊的序列也做第一步的處...
c語言歸併排序和快速排序
老師要求做排序的課程設計,在網上找到的 看著不錯,收藏了 歸併排序和快速排序都是高效的排序演算法。快速排序 最壞情況下執行時間o n 2 平均執行時間o nlogn 不需要輔助空間。不穩定的排序。歸併排序 最好和最壞下,執行時間都為o nlogn 需要輔助空間,穩定的排序。實現 include in...
C語言 整數陣列去重並排序
一 c語言中自有的qsort 函式 功能 使用快速排序對要排序的物件進行排序 原型 void qsort void base,int nelem,int width,int fcmp const void const void 引數介紹 1 待排序陣列的首位址 2 待排序陣列中元素的個數 3 各個元...