『壹』 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
代碼如下 : 運行過了 輸出e=2.718282 不知是否滿意 望採納
#include<stdio.h>
void main(){
long fun(int n);
int i;
double e=0;
double eps=1e-6;//eps表示精度 此處指10的-6次方
for(i=0;1.0/fun(i)>eps;i++)
{
e+=1.0/fun(i);
}
printf("e=%lf\n",e);
}
long fun(int n)//求n!的函數
{
if(n==0)
return 1;
else
return n*fun(n-1);
}
『叄』 c語言編程求自然數e
#include "stdio.h"
void main()
{
int k,j;
long m;
double e=0;
for(k=0;;k++)
{
// k!
for(j=1,m=1;j<=k;j++)
{
m*=j;
}
e+=1.0/m;
if(1.0/m < 0.000001)
break;
}
printf("e=%lf",e);
printf("\npress any key to exit:\n");
getch();
}
運行結果:
e=2.718282
press any key to exit:
『肆』 怎樣在c語言中對自然數e進行計算
首先 x是什麼類型?
定義的是int 輸入用的%lf 這個統一一下
其次,對於x<0時, y= -e^x
應該是先求冪,再求相反數
你寫的是y= (-e)^x
這里也改一下 應該就可以了
『伍』 c語言中怎求數學中的e是多少啊
我給你介紹一個公式吧:(泰勒工式展開式)
e=1+ 1 + 1/2! +1/3! +1/4! +1/5! + ...+ 1/n!
其中,n!表示n的階乘:n!=n*(n-1)*(n-2)*...*3*2*1;可以專門設計一個子函數求 n! ;(n越大,精確度越高)
下面是代碼:
//網頁上直接寫的,在VC++6.0運行時如果編譯出錯,那就改一下分
//號和逗號
#include<stdio.h>
#define N 20
int jiecheng(int n)
{
int i=n;
int result=1;
while(i)//
{
result*=i;
i--;
}
return result;
}
void main()
{
int i;
double e=2;
for(i=2;i<N;i++)
{
e+=1/(jiecheng(i)*1.0)
}
printf("e=%lf\n",e);
}
『陸』 計算e值得c語言編程問題
這是一個迭代的過程,
首先設置一個精確的標准,小數點後九位,也就是說:當本次迭代和上次迭代的結果之間的誤差小於:10^(-9),這就是計算完成的判斷條件
(1)設置計算結果:y=0;設置迭代次數:k=1;上次結果:y1=0;
(2)設置一個中間變數:delta=1;兩次迭代的誤差:e=0;
(3)開始迭代:
(3-1)
計算:delta=delta/k;
(本質上就是求:1/k!)
(3-2)
計算:y=y+delta;
(3-3)
計算:
(3-4)計算兩次迭代的誤差:e=y-y1
的絕對值
(4)判斷是不是該結束:
(4-1)如果:e<10^(-9),跳到(5)
(4-2)y1=y;k
=
k+1;跳到(3-1)進行下一次迭代
(5)返回:y,這就是e的值
『柒』 c語言怎麼求e
把你的jc定義為doule類型才行
『捌』 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
e沒有給初始值
#include<stdio.h>
int main(){
int n=1,k=1;
double a,e=1;
printf("請輸入精度:\n");
scanf("%lf",&a);
do{
k*=n;
n++;
e+=1.0/k;
}while(1.0/k>a);
printf("e=%lf",e);
return 0;
}
『拾』 求c語言程序,求e,用遞歸函數
用c語言程序,求e,用遞歸函數,最易於實現的計算方法應該是使用e的極限近似計算,以下以n=1000近似計算之:
n=10000時的近似結果