[問題] 關於利用c++寫金額數加逗點問題

看板C_and_CPP作者 (柏)時間15年前 (2010/10/12 15:43), 編輯推噓4(4012)
留言16則, 5人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) 最近剛開始學程式,遇到了一個問題,關於 輸入一個金額數,然後金額的最右起,向左每3個數加一逗點的問題 希望得到的正確結果: 目前這是我寫的代碼 https://gist.github.com/ad1aecb8d934f088dfde 但是我是慢慢的判斷然後執行 現在希望能將程式改成for迴圈的形式來做出結果 程式跑出來的錯誤結果: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) devc++ 有問題的code: (請善用置底文標色功能) 補充說明: 希望高手能幫忙一下 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.130.102

10/12 15:46, , 1F
int x,x10,x11,x20,x21,x22; <= 我看到這個就關掉了XD
10/12 15:46, 1F

10/12 15:48, , 2F
我們都是醫生, 要把程式醫到健健康康 ^_^
10/12 15:48, 2F

10/12 15:53, , 3F
如果要改善這個結構, 你可以用陣列來存每次 % 1000 的
10/12 15:53, 3F

10/12 15:53, , 4F
一些可能可以改進你的程式的東西: setw, setfill
10/12 15:53, 4F

10/12 15:53, , 5F
唔 我插隊了QQ
10/12 15:53, 5F

10/12 15:54, , 6F
結果, 中間再加印個逗號即可, 不過這樣就要考量數字是
10/12 15:54, 6F

10/12 15:54, , 7F
不是會超大, 造成你陣列空間不夠用, 比較好的方式就是
10/12 15:54, 7F

10/12 15:55, , 8F
整個整數當作一串字來處理, 在中間插入逗號即可, 又快
10/12 15:55, 8F

10/12 15:55, , 9F
又方便
10/12 15:55, 9F

10/12 15:55, , 10F
setfill 不錯喔 @_@
10/12 15:55, 10F

10/12 16:15, , 11F
還有看到 999999999 這種「魔數」, 最好使用 INT_MAX
10/12 16:15, 11F

10/12 16:16, , 12F
或是 numeric_limits<int>::max() 來取代, 字面上比
10/12 16:16, 12F

10/12 16:17, , 13F
好理解, 那麼多 9 可能會誤導別人這個數字含有別的意
10/12 16:17, 13F

10/12 16:17, , 14F
10/12 16:17, 14F

10/13 01:22, , 15F
用字串處理 不過還要加入防呆功能 前面不能0或有特殊符號
10/13 01:22, 15F

10/14 23:49, , 16F
love大現在就推出numeric_limits會傻掉吧XD
10/14 23:49, 16F
文章代碼(AID): #1Cj16k1i (C_and_CPP)