[問題] 算尤拉數但是我不知道我錯在哪= =

看板C_and_CPP (C/C++)作者 (花蓮閒學生)時間14年前 (2010/05/05 01:17), 編輯推噓4(4010)
留言14則, 5人參與, 最新討論串1/2 (看更多)
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 執行直接出現當機 希望得到的正確結果: 尤拉數值2.71818....... 程式跑出來的錯誤結果: 沒有所以在苦惱= = 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Dev-C++ ,windows 有問題的code: (請善用置底文標色功能) 補充說明: #include <stdlib.h> #include <stdio.h> int function(int); int main() { int a,x; double e=0; for(x=0;x<=1000;x++) { a=function(x); e+=(1/a); } printf("%lf\n",e); system("PAUSE"); return 0; } int function(int x) { int total_1=1,total_2=0,a; if (x==0) {return 1;} else if(x==1) {return 1;} else {for(a=1;a<=x;a++) total_1=total_1*a; total_2+=total_1; return total_2; } } 因為是新手所以有違板規跟我說一下我自刪 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 134.208.86.42

05/05 01:24, , 1F
我背的是 2.718281828459045 打錯了喔XD
05/05 01:24, 1F

05/05 01:24, , 2F
e+=(1/a); => e+=(1.0/a);
05/05 01:24, 2F

05/05 01:25, , 3F
阿阿阿= =真的打錯了
05/05 01:25, 3F

05/05 01:25, , 4F
你的程式跑出 2 來對不對 XD
05/05 01:25, 4F

05/05 01:25, , 5F
是直接當調= =沒東西跑出來= =
05/05 01:25, 5F

05/05 01:27, , 6F
function(0)會當掉
05/05 01:27, 6F

05/05 01:27, , 7F
我看錯了..
05/05 01:27, 7F

05/05 01:28, , 8F
原來這個數是尤拉數, 我一直都叫它自然對數的底....Orz
05/05 01:28, 8F

05/05 01:29, , 9F
你會死在 function(34)
05/05 01:29, 9F

05/05 01:30, , 10F
??為什麼
05/05 01:30, 10F

05/05 01:33, , 11F
應該說不是 function(34) 本身而是在那之後
05/05 01:33, 11F

05/05 01:33, , 12F
不過理由則應該和六樓的 ilway25 想說的一樣
05/05 01:33, 12F

05/05 01:33, , 13F
改成e+=(1.0/a)跑出來就變成1.#INF00....
05/05 01:33, 13F

05/05 01:34, , 14F
這個抱歉大大能不能說請楚一點?我這個新手真的很笨...
05/05 01:34, 14F
文章代碼(AID): #1Bu5R5ya (C_and_CPP)
文章代碼(AID): #1Bu5R5ya (C_and_CPP)