[問題] 轉成四進位答案會少一

看板C_and_CPP (C/C++)作者 (天飛)時間14年前 (2011/10/21 23:03), 編輯推噓0(0017)
留言17則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) dev-c++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 整數轉四進位,結果會少1 餵入的資料(Input): 使用者輸入 預期的正確結果(Expected Output): 十進位正常轉四進位,例如(25)10=(121)4 錯誤結果(Wrong Output): 結果少1,(25)10=(120)4 程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/XcqJk7Bv 補充說明(Supplement): 我最後必須要在答案(result)後+1才會是正確答案,但自覺想法應該沒錯 希望板友幫忙指點迷津,感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.64.145.131

10/21 23:03, , 1F
請給code, 不然我就只好建議你input拿進來之後先加1
10/21 23:03, 1F
※ 編輯: DayFly0515 來自: 203.64.145.131 (10/21 23:05)

10/21 23:06, , 2F
抱歉,剛剛先po文再轉貼code
10/21 23:06, 2F

10/21 23:17, , 3F
因為你判斷擺最前面, 最後剩下的1沒加到, 印的放迴圈
10/21 23:17, 3F

10/21 23:18, , 4F
之後, 我猜不只會少一, 少2、3應該都有
10/21 23:18, 4F

10/21 23:22, , 5F
我測過好幾個數字,全部都是只少1
10/21 23:22, 5F

10/21 23:27, , 6F
少1跟判斷有關嗎?我是轉成四進位後用十進位方式加起來
10/21 23:27, 6F

10/21 23:28, , 7F
例如:(25)10=(121)4=1*10^2+2*10^1+1*10^0這樣
10/21 23:28, 7F

10/21 23:29, , 8F
感覺是很簡單的問題卻困擾我一個下午~.~
10/21 23:29, 8F

10/21 23:42, , 9F
咦? 我把你的code的printf的+1拿掉 在我的電腦上
10/21 23:42, 9F

10/21 23:42, , 10F
跑的是正確的結果欸 @@
10/21 23:42, 10F

10/21 23:42, , 11F
另外跟你講一下你一開始的input<4的時候result沒有印出
10/21 23:42, 11F

10/21 23:42, , 12F
來喔~
10/21 23:42, 12F

10/21 23:44, , 13F
@@@@@@@@@@@@@@@@ 我用dev一定要+1才對 result有印出來
10/21 23:44, 13F

10/21 23:45, , 14F
見鬼了...
10/21 23:45, 14F

10/21 23:47, , 15F
我是用ubuntu上的gcc 4.4.3
10/21 23:47, 15F

10/21 23:48, , 16F
阿 因為printf被我橋過位置測試,所以沒印出來 3Q
10/21 23:48, 16F

10/22 00:59, , 17F
感謝janyfor板友指點迷津,問題在pow出來是浮點數
10/22 00:59, 17F
文章代碼(AID): #1EeOchj8 (C_and_CPP)
文章代碼(AID): #1EeOchj8 (C_and_CPP)