推 LaPass: 那當然錯啊..... 01/20 15:01
噓 anguso: 你有自己跑過嗎? 出來的是正確的嗎? 01/20 15:03
推 LaPass: 等等,c真的是這樣解的喔? 01/20 15:04
推 anguso: 等等,我按到噓了.. 01/20 15:06
→ leolarrel: 為什麼你要把浮點數拿去判斷是否大於0 ?? 01/20 15:09
推 L7N: 1.3, 7.99, 10.45都大於0,且同時也是浮點數喔XD 01/20 15:12
推 jackie0910: x=1.4 → x=0.9 → y=0 你的解法會變成這樣 01/20 15:13

推 leolarrel: L7N大,你提出來的點就是我不解原po為何判斷是否大於0 01/20 15:16
→ leolarrel: 的原因 01/20 15:16
→ reister: 這是我的測試結果 01/20 15:17
→ reister: 我的想法是 假如-1.6四捨五入不是=-2嗎 @@" 01/20 15:20
→ reister: 因此傳回整數時會砍掉小數點後的東西 01/20 15:20
→ reister: x=-1.6 y=-2.1去掉小數這樣 01/20 15:20
→ reister: 正數 x=2.4 y=2.9 去掉小數 result=2 01/20 15:21
推 L7N: 原PO的意思是讓浮點數+0.5之後用強轉型成int就達到題目目的啦 01/20 15:22
→ leolarrel: -1.6 四捨五入後到底該是 -1 還是 -2 ,還有爭議 01/20 15:22
推 mnbv711: 我覺得這沒有錯啊 還是你當時寫的不一樣? 01/20 15:23
→ reister: 另外補充一下,他的意思是四捨五入至整數位! 01/20 15:23
→ testPtt: 我覺得10.45不是浮點數>﹏< 01/20 15:25
推 L7N: 10.45不是嗎 :( 01/20 15:26
→ reister: 其實我也認為應該是沒有錯,很不解不合格的原因 T_T 01/20 15:27
→ reister: 或是有我沒顧慮到的地方... 01/20 15:28
推 anguso: 我跑了結果是正確的啊 這家別去了吧 感覺不大妙 01/20 15:29
→ leolarrel: 我用gcc,輸入2.1,2.1+0.5 = 2.6 , y=(int)2.6, 答案=2 01/20 15:37
→ leolarrel: 會不會是說C++ 的 int 轉型跟C不一樣呢 01/20 15:38
→ leolarrel: 疑,對喔,我耍笨了 01/20 15:39
→ knives: 四捨五入是這樣寫的喔 01/20 15:40
→ ahwater01: 看起來沒錯阿,怪怪 01/20 15:46
噓 VVll: 版上一堆天下的面試文都直接寫出題目了 還會寫錯 01/20 16:25
推 GoalBased: 覺得對的,步就會根原PIO一樣上不了XD 01/20 16:29
→ VVll: 最快速寫法 std::round() 01/20 16:35
→ VVll: 這間就算過了第一關 後面的試用期才是最大難關 01/20 16:56
推 L7N: 好吧..看半天真不知寫錯在哪裡...有高手可以指點一下嗎... 01/20 17:26
推 wugesmin: int y = (int)x + (x*2)%2 01/20 17:37
→ leolarrel: 看完一整串'/天下'的,好像不是只看答案正不正確來挑人 01/20 18:07
→ GoalBased: 推文有指出錯誤了 01/20 18:15
推 timeflying: 沒錯吧,前面推文說有錯的,是學生嗎? 01/20 19:46
→ Push5F: ((int)(sample_arry[i]+0.5)) > ((int)sample_arry[i])? 01/20 20:18
→ Push5F: (float)(int)(arry[i]+0.5):(float)(int)(arry[i]) 01/20 20:20
→ Push5F: 天下就算了...對台中年輕人毫無貢獻,只想用免錢的公司 01/20 20:22
推 micola: c/c++在浮點數rounding規範是implementation defined 01/20 21:11
推 f1234518456: 這間這次撐這麼久還沒改名 真是不簡單 01/20 21:46
推 yauhh: 四捨五入這題,只是某本書最開始教int和float,所舉的例子 01/20 21:56
→ yauhh: (int)(f+0.5) 01/20 21:56
→ yauhh: 原po答案真的錯啊,正整數加0.5,負整數減0.5,上來討論卻 01/20 21:58
→ yauhh: 還沒發現。刷掉確實是個蠻簡便的決定。 01/20 22:00
→ yauhh: 寫錯了,正數加0.5,負數減0.5 01/20 22:00
→ yr: 原po 程式不就是 正數加0.5,負數減0.5 ,還是我哪邊眼花看錯 01/20 22:07
→ yauhh: 咦對耶,抱歉講太快了,負數減0.5轉整數也對。這樣應該沒錯 01/20 22:25
→ yauhh: 是我去考才會因為這題被刷掉 01/20 22:25
推 patchiang13: 程式碼看不出錯啊,這不是最直接最暴力的解法嗎 01/20 22:33
→ patchiang13: 還是他嫌你寫太長? 01/20 22:35
推 dnzteeqrq: @@感謝分享 01/20 23:07
推 x123356: 我人腦編譯了一下也沒發現有錯 01/20 23:37
推 indexcome: 我覺得這樣寫沒問題啊 01/21 11:46
→ realmeat: 可能面試官的人腦compiler 有加上 -Werror 01/21 12:10
→ reister: 其實我也想過是否因為程式碼不夠簡短 感覺太弱之類的... 01/21 12:50
→ reister: 另外,感謝所有大大給予小弟的指教和分析 ^_^ 01/21 12:54
→ andymai: 還記得原題目的限制嗎?我記得有不可以用轉型? 01/21 13:07
推 gjozj30303: 0丟進去就錯了阿,這不是最基本的嗎 01/21 13:10
推 wheattea: 樓上找到盲點了XD 01/21 13:24
推 wheattea: 原poIF(X>=0)這邊把=拿掉應該就對了吧!! 01/21 13:27
推 arthurle3210: 樓上,小弟用VC++6.0實作,0丟進去沒錯呀! 01/21 13:34
→ dingyuchi: 應該是想看到你用round, 只要自幹就是錯了 01/21 13:54
→ yr: (int)0.5 是 0 吧! 01/21 14:31
推 asleisureto: 好多推文都預設立場是原po寫錯,最後也沒人能真的指 01/21 17:24
→ asleisureto: 出錯在哪裡… 01/21 17:24
推 snostaw130: 上面幾個推文的... 01/21 21:07
推 newways: int的長度比float短吧,直接轉的話值沒問題嗎? 01/22 14:30
推 tony3310t: 太拖泥帶水了,不過沒上也不見得是壞事 01/22 16:24
推 atoom: 解法沒錯 上面推文很多問題 01/26 09:54
推 joaner77: 應該是想看到你用round, 只要自幹就是錯了 這個好笑XD 01/27 16:17
推 noah538: X=x+0.5f; 不用謝我了 XD 02/13 08:21
推 barry08tw: 說真的沒進去 你真的要覺得幸運! 06/01 20:16
推 sad010: 如果帶個X=2.4999999 你會發現你的答案是錯的 07/20 17:29