[問題] 1/階層的倒數累加問題

看板C_and_CPP作者 (ff)時間9年前 (2016/11/01 13:51), 9年前編輯推噓1(1019)
留言20則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: Win10, Linux, ...) XP 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) Visual c++ 2010版 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 1/階層倒數 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/LuB3dDg4 補充說明(Supplement): 無法顯示出小數 ,且我一步一步想過了還是想不到解法 QQ 有需要補充再告訴我 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.107.188.16 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1477979488.A.1FA.html

11/01 13:56, , 1F
有,你的題目到底是什麼
11/01 13:56, 1F

11/01 14:03, , 2F
目前看到有錯的就是 total=1/pro; 這行
11/01 14:03, 2F

11/01 14:03, , 3F
pro 是 int,1/pro 是整數除法,改成 1.0/pro 才是你要
11/01 14:03, 3F

11/01 14:03, , 4F
的 double 除法 (有小數點的)
11/01 14:03, 4F

11/01 14:04, , 5F
另外建議學一下單步偵錯技巧
11/01 14:04, 5F

11/01 14:05, , 6F
你現在的計算結果是 1+(1/x!) 這與原來的題目相符嗎?
11/01 14:05, 6F

11/01 14:11, , 7F
11/01 14:11, 7F

11/01 14:12, , 8F
另外單步偵錯是什麼意思 因為我是初學者....
11/01 14:12, 8F

11/01 14:18, , 9F
你的迴圈每次都把 sum 重設為 1 所以計算出來的結果不對
11/01 14:18, 9F
可是之前我們老師教的是說 sum=sum+xxx那行執行後原本的sum會被替代掉

11/01 14:19, , 10F
VC++的話就是按F10
11/01 14:19, 10F
執行並偵錯嗎? Visual c++是F5

11/01 14:21, , 11F
cout 有錯字,是「階乘」不是「階層」
11/01 14:21, 11F


11/01 14:23, , 13F
關於偵錯可以看看這篇 (PDF檔),Step就是我說的單步執行
11/01 14:23, 13F

11/01 14:24, , 14F
不過我一直以為老師會先教偵錯...
11/01 14:24, 14F
感謝你 我上完課回去再看這個 ※ 編輯: yahhhhhh (49.215.211.0), 11/01/2016 14:35:27

11/01 15:15, , 15F
我指的不是 sum=sum+total; 那行,而是 sum=1; 那行
11/01 15:15, 15F

11/01 15:16, , 16F
你這樣 sum 無法累加,每次都被重設為 1
11/01 15:16, 16F

11/01 15:22, , 17F
寫法x在迴圈內用減的不對。
11/01 15:22, 17F

11/01 21:19, , 18F
你應該是想寫sum+=1吧,不過這樣while外面要先給值
11/01 21:19, 18F

11/01 21:20, , 19F
另外1除以int型態最後應該會變成0吧?
11/01 21:20, 19F

11/02 23:39, , 20F
謝謝大家 我自己想出來了
11/02 23:39, 20F
文章代碼(AID): #1O62rW7w (C_and_CPP)