設計一個程式以下列級數計算ex值,使用者輸入x值後程式於計算後將結果輸出至螢幕上:
e^x=1+x/1!+X^2/2!+X^3/3!+...
2006-12-11 18:39:14 · 1 個解答 · 發問者 良 3 in 電腦與網際網路 ➔ 程式設計
我用Dev-C 開啟的結果是,
這行 if (argc>1) _atodbl((_CRT_DOUBLE *)&x, argv[1]); 出現錯誤
以下是錯誤訊息:
In function `int main(int, char**)':
`_CRT_DOUBLE' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
2006-12-12 17:13:06 · update #1
expected primary-expression before ')' token
`_atodbl' undeclared (first use this function)
2006-12-12 17:13:14 · update #2
e^0.000000 = 1.0000000000000000000n請按任意鍵繼續 . . .
執行的結果變成這樣,不能輸入x值耶
不好意思,麻煩你了。
2006-12-13 10:36:44 · update #3
#include
#include
#include
unsigned long Fact(int n) // 0 ~ 12
{ unsigned long f=1;
int i;
for (i=2; i<=n; i++)
f *= i;
return f;
}
double exp(double x)
{ double e = 1;
int i;
for (i=12; i; i--)
e += pow(x,i)/ Fact(i);
return e;
}
int main(int argc, char **argv)
{ double e, x;
if (argc>1) _atodbl((_CRT_DOUBLE *)&x, argv[1]);
e = exp(x);
printf("e^%f =%30.19f\n", x, e);
}
不難吧!
但要再準,你要自己寫階乘囉!
這個簡單的寫法只能算到 12!
2006-12-13 06:51:11 補充:
那您改用 if (argc>1) x = atof(argv[1]); 試試
atodbl 是 VC 的,atof 是 ANSI C 的
2006-12-12 00:48:24 · answer #1 · answered by ? 7 · 0⤊ 0⤋