https://i.imgur.com/1p7si7t.jpg
https://i.imgur.com/86KmZwv.jpg
https://i.imgur.com/0PN7VEy.jpg
如題 完全不懂為什麼 跪求解釋OTZ
作者:
CoNsTaR ((const *))
2017-10-04 05:04:00打高空的說法,因為 c/c++ 有 side effect,結案
與其說不同意樓上,不如說我不知道樓上在講什麼?你的兩個 scanf 寫錯了,把 warning 全開就會有警告了這些地方要小心點,出槌時會出現一個摸不著頭腦的 bug然後你的演算法是錯的,試試 aabbb 和 cccdd
作者: yvb 2017-10-04 08:37:00
發[問題]不是有格式?且程式用貼圖有點糟,建議用置底那篇方式.然後scanf處有warning但不影響; 後半比較像是算總字數而已.問題在於, printf 出來的 13 13 是否如同預期.也就是說, 犯了置底十三誡中,第一誡的延伸, 陣列後段無初值.
作者:
CoNsTaR ((const *))
2017-10-04 10:32:00樓樓上表示檔案 IO?我都只用網路 socket 和 sql
我昨晚是喝多少... Orzyvb 說的沒錯,問題出在陣列無初值你以為陣列後段全部是 0 其實並不。不信可以在 scanf 前加上 memset(first,0,100); 和memset(second,0,100); 別忘了 #include <string.h>
呃 aabbb跟cccdd顯示是對的啊我看看樓上大大說的 我是完全新手所以有些術語聽不太懂喔喔 可以了 原來要先設成0然後發文格式不對不好意思 沒什麼用過這版
噗 不是哪邊有問題 是哪邊沒問題用到三層for 你腫大了 比西瓜還大你最好重發一篇 照規定格式貼好
作者: stucode 2017-10-04 13:02:00
建議原PO從頭思考一下,不只是時間複雜度的問題,你的演算法從一開始就沒有輸出正確結果。例如:ab跟aa
for最討厭的就是在for裡面更動迴圈計數器(控制變數)
對啦,(abcde, aaaaa) 或 (abcdef, aaabbb) 這種組合
雖然C不太管 但是有兩個counter同時前進 條件也不一定正常應該用while做
多贈送一組測資 (abc, abcskdfjskghdfkjghd)其實題目有提示正確的演算法了,麻煩把題目再看一次...
原po是用286在算嗎?XDD 終止條件設字串長度就好了
沒 我只是天生反骨不想用提示做而已……提示做法我已經花10分鐘打完了
喔喔喔,原來是太強所以要做自我挑戰嗎這題如果讓我來做,會把兩個字串都sort過再strcmp即可
對,字串中的字母照順序重排,在這題就順便剔除非字母兩個字串如果是同一組字母的不同排列sort過自然會變相同這個作法複雜度不如題目提示的distribution counting快
作者:
CoNsTaR ((const *))
2017-10-04 22:37:00其實題目的做法不也是先做 bucket sort 再比較兩個陣列嗎
可以視為distribution sort或bucket sort的前半部沒錯如果要我為我的方法想些廣告單上的亮點,我想應該會是很好寫,兩個 qsort() 一個 strcmp() 就收工了但題目的方法可以處理接近無限大的字串,完全望塵莫及實際上如何做,留給原PO腦力激盪一下,顯然不能用scanf我說的不一定對就是了,也許我今天也喝了兩瓶高粱發酒瘋