Ⅰ c語言編程求自然數e
只能自己手動用具體數來表示
比如
const
double
e=2.71828;
或者
#define
e
2.71828
huliyuputao
是正解
Ⅱ C語言用遞歸方法求E
/* e=1+1/1!+1/2!+1/3!+…�=2.71828 */
#include <stdio.h>
#include <math.h>unsigned long factorial(unsigned short n) {
if(n <= 1) return 1;
return n*factorial(n - 1);
}double e(unsigned short n) {
if(n <= 1) return 2.0;
return e(n - 1) + 1.0/factorial(n);
}int main() {
printf("e ≈ %lf\n\n",e(30));
return 0;
}
Ⅲ C語言編程計算e
樓主你好
具體代碼如下:
#include<stdio.h>
int main()
{
double e=1,index;
int i=1,j=1;
do{
i*=j;
index=1.0/i;
e+=index;
j++;
}while(index>=1E-6);
printf("e=%.5f\n",e);
return 0;
}
希望能幫助你哈
Ⅳ 用c語言怎樣求自然常數e
如果要求足夠精確的話,那你就要突破計算機位數的限制,通過鏈表來存儲你的計算結果
Ⅳ c語言求e 兩種方法
// 我先提供一種/* e = 1 + 1/1! + 1/2! + 1/3!+........1/n!+.... ... */
#include <math.h>
#include <stdio.h>void main() {
double e = 1.0,delta;
int factorial = 1,i = 1;
do {
delta = 1.0/factorial;
e = e + delta;
i++;
factorial = factorial*i;
} while(fabs(delta) > 1.0e-6);
printf("e = %lf\n",e);
}
Ⅵ C語言求e的值
printf("%lf\n",e);
改成
printf("%.100lf\n",e);
因為double精度只能顯示10多位,後面是0.
一定要精度換數組保存.
Ⅶ C語言編一個計算e的值的程序
//double??
for(i=1.000000;n>=EPSILON;++i)
{
z=z*i;//階乘
n=m/z;//求反
t=t+n;//求和
}
你是想表達這個意思吧
doubles,e,n,z,m,t,i;//1.不需要全部使用double的
//double是處理小數位數多的時候進行使用的
//double和float都是一個相似值
t=0.000000;
m=1.000000;
s=1.000000;
z=1.000000;
for(i=1.000000;n>=EPSILON;++i)//n的初始化呢?n什麼時候才能夠>=EPSILON
//所以你這里應該使用dowhile的結構,而不是for
{
z=z*i;//這里的問題,就是我前面標示的,
//longlong會更精確一點,而1.0000001*1.0000002的結果會對下面有影響的
n=m/z;//m始終沒有改變過,沒有必要使用一個變數:)
//n=double(1)/z;
t=t+n;//t+=n;個人習慣
}
e=t+1.000000;
printf("e=%.6lf",e);
return0;
Ⅷ c語言中%e的用法
因為a是int類型的,將a的類型改成float就會正常顯示了。至於為什麼顯示這個奇怪的數字,簡單講是因為12345678在內存中的2進制保存形式與這個奇怪的數字的在內存中的2進制保存形式一樣,但它們有不同的解釋。比如:11111111(2進制),如果作為整數解釋,它是2^8-1=255。但如果作為浮點數解釋,它是尾數*2^階碼。假設尾數和階碼都是4位,同時為了與真正的浮點數格式的國際標准一致,同時假設此浮點數的2進制存儲形式與它要表示的真正的浮點數相比,尾數前面省略了1.,則尾數部分是2^4-1=15,而真正的尾數應該是1.15,同時,階碼是2^4-1=15。所以,按我們的假設,在內存中的11111111(2進制),如果作為浮點數解釋,就是:1.15*2^15,它與255完全不同,但內存中的2進製表示與255完全一樣。這與你之所以看到那個奇怪的數的原理是一致的,但浮點數的國際標准要比這復雜得多。
Ⅸ c語言的簡單問題,計算e
求階乘的遞歸函數的出口設置不對
int jc(int n){
if (n==1)
return 1;
return jc(n-1)*n;
}
而main 函數里的for 循環
x+=1/(double) jc(j); //強制類型轉換成double
Ⅹ C語言,據以下公式求e的值。要求用兩種方法計算:
#include <stdio.h>
int main()
{
int i;
double sum,t;
for(t=i=1,sum=1;i<50;++i)
{
t*=i;
sum+=1.0/t;
}
printf("%lf ",sum);
return 0;
}