實驗十一(2018)D 實驗9 20 字串排序

2021-09-03 10:50:03 字數 1499 閱讀 5129

拆分問題,也就是 讀取字串——排序字串——輸出字串

字串數目不定當然就用動態二維陣列來存了,本來應該用指標寫的,這裡就偷懶用c99了

切記!scanf讀完n後緩衝區還有乙個回車!

務必用getchar()把回車吃掉,不然讀入字串時gets首先得到的是乙個回車!!!!

正常對陣列排序的話我們是把陣列裡的數不斷交換排序的,現在操作的每個物件是字串,顯然交換字串就不太現實

仔細想一想我們做了件什麼事情,無非就是,啊,把最小的排到第一位,第二小的排到第二位,這樣從0,1,2。。。遍歷時可以按順序輸出

其實我們不需要把元素排序成這樣啊,我們只需要告訴輸出,首先輸出的是第a個字串,再輸出第b個字串,這樣我們只需要告訴遍歷,第幾大的元素要到**找就可以了

舉個例子:

d a c b四個字母,排序應該是a b c d,排序之前我們另創乙個陣列,給他們標號

0 1 2 3

排序時我們比較的元素時字母,但我們交換的卻是序號

我們把序號排成

1 3 2 0

這樣我們開始輸出1對應的元素,也就是a,再輸出3對應的元素,也就是b……

其實有字典型別的話會方便很多,python有,c沒有

(你怎麼不把sort一起拿過來呢233)

所以我們比的是str[order[i]],str[order[j]],實際交換的確實order[i]和order[j],原來的字串陣列並沒有動

最後遍歷輸出的是str[order[0,1,2,3…]]

#include

intmain

(int argc,

char

const

*argv)

for(i=

0;i)puts

(str[order[i]])

;}

題目描述

問題描述:

整數可以按照大小來排序,其實字串也可進行排序。排序時需要比較字串大小。字串比較規則見problem13中對於strcmp功能的描述。任意給定n個字串,字串中可以包含除換行符之外的任意字元。你的任務是將這n個字串從小到大進行排序,然後輸出。

輸入與輸出要求:

輸入乙個不超過200的整數n,代表待排序字串的個數。然後輸入n個字串,每個字串長度不會超過100,以換行符結束。輸出排序後的n個字串,每個字串佔一行。

程式執行效果:

sample 1:

5↙bbb↙

zzzzzz↙

aabbbccc↙

aaaaaa↙

abbbbb↙

aaaaaa↙

aabbbccc↙

abbbbb↙

bbb↙

zzzzzz↙

sample 2:

3↙abbbbbb↙

abbbbbb↙

aaaa↙

aaaa↙

abbbbbb↙

abbbbbb↙

G 實驗9 20 字串排序

題目描述 問題描述 整數可以按照大小來排序,其實字串也可進行排序。排序時需要比較字串大小。字串比較規則見problem13中對於strcmp功能的描述。任意給定n個字串,字串中可以包含除換行符之外的任意字元。你的任務是將這n個字串從小到大進行排序,然後輸出。輸入與輸出要求 輸入乙個不超過200的整數...

c 實驗5 字串

一.問題及 檔名稱 字串.cpp 作 者 荊蕾 完成日期 2016 年 5 月5 日 版 本 號 v1.0 輸入描述 輸入一組字串 問題描述 輸入一組字串,統計輸出字串中 大 小寫 字母個數,數字個數及其它字元個數 程式輸出 統計輸出字串中 大 小寫 字母個數,數字個數及其它字元個數 include...

實驗9 9 字串加密

任意給定乙個字串,與兩個編碼表,要求對該字串進行加密。字串中只包含大寫字母與小寫字母。編碼表是字母表的乙個重新排列,第乙個編碼表為大寫字母編碼表,第二個編碼表為小寫字母編碼表。例如 字母表為 大寫字母表 abcdefghijklmnopqrstuvwxyz 小寫字母表 abcdefghijklmno...