[問題] 不知道問題再哪

看板C_and_CPP (C/C++)作者 (牽牛花開的日子)時間16年前 (2010/02/03 20:41), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) 程式碼中的dn印出來的值有問題 希望得到的正確結果: 程式跑出來的錯誤結果: dn都是0 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) DEV C++ 有問題的code: (請善用置底文標色功能) #include<stdio.h> #include<math.h> long factorial(int N) { if(N<=1) { return 1; } else { return (N*factorial(N-1)); } } int main() { int dn = 0; float d1=0 ; long k; int n; int i; int p; A: printf("Enter n:"); scanf("%d",&n); if(n<=0){goto A;} if(n==1) { printf("dn = %d\n",factorial(n)); } if(n>1) { for(i=2;i<=n;i++) { p = pow(-1,i); k = factorial(i); d1+= p/k; printf("%d\n",i); printf("%d\n",factorial(i)); printf("%d\n",p); printf("%d\n",d1); } dn = 1 + d1; printf("dn = %d\n",dn); } system("pause"); return 0; } 補充說明: 這是一個數學式子,裡面有階乘的運算。 不好意思>"<可能是小問題... 只是我不知道哪裡出錯了 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.115.190.166

02/03 21:01, , 1F
p,k都整數 p是-1的次方 k又都>2 那d1也整數 就一直都0阿
02/03 21:01, 1F

02/03 21:03, , 2F
我建議不考慮精算記憶體 都用double作吧
02/03 21:03, 2F

02/03 21:12, , 3F
謝謝你~~我知道問題在哪裡了
02/03 21:12, 3F
文章代碼(AID): #1BQMxagG (C_and_CPP)
文章代碼(AID): #1BQMxagG (C_and_CPP)