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

作者: yahhhhhh (ff)   2016-11-01 13:51:20
開發平台(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
有需要補充再告訴我
作者: Schottky (順風相送)   2016-11-01 13:56:00
有,你的題目到底是什麼目前看到有錯的就是 total=1/pro; 這行pro 是 int,1/pro 是整數除法,改成 1.0/pro 才是你要的 double 除法 (有小數點的)另外建議學一下單步偵錯技巧你現在的計算結果是 1+(1/x!) 這與原來的題目相符嗎?
作者: yahhhhhh (ff)   2016-11-01 14:11:00
" target="_blank" rel="nofollow">
這是題目另外單步偵錯是什麼意思 因為我是初學者....
作者: Schottky (順風相送)   2016-11-01 14:18:00
你的迴圈每次都把 sum 重設為 1 所以計算出來的結果不對
作者: james732 (好人超)   2016-11-01 14:19:00
VC++的話就是按F10
作者: Schottky (順風相送)   2016-11-01 14:21:00
cout 有錯字,是「階乘」不是「階層」http://epaper.gotop.com.tw/pdf/acl030900.pdf關於偵錯可以看看這篇 (PDF檔),Step就是我說的單步執行不過我一直以為老師會先教偵錯...我指的不是 sum=sum+total; 那行,而是 sum=1; 那行你這樣 sum 無法累加,每次都被重設為 1
作者: pttworld (批踢踢世界)   2016-11-01 15:22:00
寫法x在迴圈內用減的不對。
作者: b0920075 (Void)   2016-11-01 21:19:00
你應該是想寫sum+=1吧,不過這樣while外面要先給值另外1除以int型態最後應該會變成0吧?
作者: yahhhhhh (ff)   2016-11-02 23:39:00
謝謝大家 我自己想出來了

Links booklink

Contact Us: admin [ a t ] ucptt.com