[閒聊] VC2005 的 qsort 好像有bug...

看板C_and_CPP作者 (zhim)時間14年前 (2009/12/02 06:09), 編輯推噓4(4016)
留言20則, 7人參與, 最新討論串1/3 (看更多)
用VC2005內建的qsort 幫20個 double排序 好像會得出錯的順序 不知是否有人有相同的經驗? 還是MS 已經有patch了... 希望 patch != VC2008 .... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.51.64

12/02 08:38, , 1F
你有在別的IDE測試嗎
12/02 08:38, 1F

12/02 08:39, , 2F
你是怎麼寫的...?
12/02 08:39, 2F

12/02 09:18, , 3F
通常是自己寫錯
12/02 09:18, 3F

12/02 09:18, , 4F
(這裡的通常, 大約是 99.99%)
12/02 09:18, 4F

12/02 09:30, , 5F
寫程式結果有錯都不會先懷疑自己寫錯就覺得是環境給的
12/02 09:30, 5F

12/02 09:30, , 6F
lib有錯嗎Orz 這麼有自信的話直接貼code來看就知道了XD
12/02 09:30, 6F

12/02 10:51, , 7F
(99.9% + 0.1%)寫錯...
12/02 10:51, 7F

12/02 10:55, , 8F
我敢猜問題出在那個傳入qsort的cmpfunc(比較函式)...
12/02 10:55, 8F

12/02 10:57, , 9F
題外話,寫程式出問題就怪罪到IDE或compiler,不是好事,雖
12/02 10:57, 9F

12/02 10:58, , 10F
然這種事也真的有,但是在已經成熟而且在市面上的產品上
12/02 10:58, 10F

12/02 11:00, , 11F
來說,真的少見,頂多是在compiler最佳化那邊出問題,這種
12/02 11:00, 11F

12/02 11:00, , 12F
內建functions出問題的,還沒遇過.
12/02 11:00, 12F

12/02 11:12, , 13F
請參考別人"犯錯心得"如下兩網址:
12/02 11:12, 13F

12/02 11:13, , 14F
12/02 11:13, 14F

12/02 11:13, , 15F
12/02 11:13, 15F

12/02 13:22, , 16F
我隔空抓藥一下, 他大概回傳 *(double*)x-*(double*)y;
12/02 13:22, 16F

12/02 13:22, , 17F
當 x, y 差距太小, 回傳又 cast 成 int 就會變為 0 ...
12/02 13:22, 17F

12/02 18:07, , 18F
原po都不吭聲,大家debug倒是解的很高興
12/02 18:07, 18F

12/02 18:44, , 19F
樓上是bug, 抓到了 XD
12/02 18:44, 19F

12/02 22:27, , 20F
大家都講得太明了 -.- 我反倒想看看他測了幾個IDE來下結論
12/02 22:27, 20F
文章代碼(AID): #1B5PFzno (C_and_CPP)
文章代碼(AID): #1B5PFzno (C_and_CPP)