Re: [問題] 算尤拉數但是我不知道我錯在哪= =
※ 引述《owem0410 (花蓮閒學生)》之銘言:
: ( *[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);
^^^^^^^^^
這邊也該改成1.0 不然會變成int/int的運算 也就是小數點下會無條件捨去
會輸出 1.#INF00 是因為int overflow的關係 (見下面)
: }
: 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;
^^^^^^^^^^^^^^^^^^
這邊是在算x! 而你x最大會到1000
int是裝不下 1000!的哦!
: total_2+=total_1;
: return total_2;
: }
: }
: 因為是新手所以有違板規跟我說一下我自刪
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.254.168.141
※ 編輯: lagerway 來自: 111.254.168.141 (05/05 01:35)
→
05/05 01:36, , 1F
05/05 01:36, 1F
→
05/05 01:36, , 2F
05/05 01:36, 2F
→
05/05 01:37, , 3F
05/05 01:37, 3F
→
05/05 01:37, , 4F
05/05 01:37, 4F
推
05/05 01:41, , 5F
05/05 01:41, 5F
推
05/05 01:43, , 6F
05/05 01:43, 6F
→
05/05 01:43, , 7F
05/05 01:43, 7F
推
05/05 02:00, , 8F
05/05 02:00, 8F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章