看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Dev C 程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/xFV0lfjJ 各位大大好 其實我的問題跟ACM476的演算法甚麼無關 跟 浮點數的處理比較有關係 小弟的CODE本來一直WA,後來把東西印出來之後才發現 結束的 9999.9 我用float存會是 9999.900391 所以在判斷結束時一直有問題 1.嘗試著把所有的float 都改成 double 結果光是在一開始parse字串印矩形的時候 矩形的點都是 [0,0] 2.後來又想說改成用 %0.1f 結果出來的結果跟想像的差很多 最後是我把結束條件改成>= 才AC的 我有GOOGLE一下一般AC的CODE 好像都沒有人像我一樣是一次fgets一串下來在去strtok的 想要請教一下板上各位大大我上面那兩種改法為什麼會有問題 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.217.30.104
mingcloud:另外我想說用atof 取代 sscanf 結果程式就卡住了.. 05/15 22:16
tropical72:http://ppt.cc/(pzI 對一下裡面的 fgets+strtok+atof 05/15 22:24
tkcn:印 double 要用 %lf 吧? 05/15 22:25
mingcloud:用%1f印還是全部都是0... 05/15 22:32
firejox:%.1f ... 05/15 22:48
firejox:你為什麼要多一個0..... 05/15 23:22
mingcloud:我現在抓矩形的地方解決了 但是抓點判斷的地方 用%1f 05/16 00:04
mingcloud:抓下來印出來的直都不一樣... 05/16 00:05
mingcloud:while(scanf("%1f %1f", &temp_x, &temp_y); 05/16 00:05
mingcloud:這樣寫到底有甚麼問題啊...怎麼印出來都不一樣OTZ 05/16 00:06
loveme00835:不是數字 1, 是小寫 L 05/16 00:09
mingcloud:...我懂了...只是忽然有種想要自D的衝動... 05/16 00:16
mingcloud:感謝大家的幫忙(跪) 05/16 00:16
james732:你不是板上第一個把 1 跟 l 搞錯的,也不會是最後一個 XD 05/16 00:17
walker2009:我笑了 06/20 00:45