English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

設計一個程式以下列級數計算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

1 個解答


#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

fedest.com, questions and answers