c语言for求e的近似值
㈠ c语言求帮助!!求e的近似值,用1/1!+1/2!+1/3!+.......1/n!
首先:%0.2f表示小数点后只要两位的喔?
其次:错误是在while(sum>le-6),这个是因为,刚刚开始的时候,sum就是一个0,不大于le-6,所以,sum的结果是0。
最后稍微改动了一下:
#
include
"stdio.h"
void
main()
{
int
n=1;
long
k=1;
float
sum=0;
float
temp
=
1;
while(temp>1e-6)
{
k
*=
n;
temp
=
1.0/k;
sum
+=
temp;
n++;
}
printf("%.2f\n",sum);
}
㈡ C语言编程序,求e的近似值e≈1+1/2!+1/3!+…+1/n!(1)计算前20项(2)计算各项直到最后一项小于10^(-4)为
这个是保留两位小数。忘采纳啊
#include "stdio.h"
main()
{
int n,s;
int i,j;
doublesum,item;
sum=1;
printf("Entern:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
item=1;
for(j=1;j<=i;j++)
{
item=item*j;
}
sum=sum+1/item;
}
printf("1+1!+1/2!+1/3!.....+1/n!=%.2f",sum);
}
㈢ C语言编程序,求e的近似值e≈1+1/2!+1/3!+…+1/n!
分析:有两种情况
(1)计算前n项
源程序如下:
#include<stdio.h>
int
main()
{
double
item=1,sum=1;
int
n,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
item*=1.0/i;
sum+=item;
}
printf("The
sum
is
%lf\n",sum);
return
0;
}
(2)计算各项直到最后一项小于10^(-4)
源程序如下:
#include<stdio.h>
#include<math.h>
int
main()
{
double
item=1,sum=1,n=1;
do
{
item*=1.0/n;
sum+=item;
n++;
}while(fabs(item)>=1e-4);
printf("The
sum
is
%lf\n",sum);
return
0;
}
㈣ C语言编程:利用下面公式,求自然对数e的近似值 e=1+1/1!+1/2!+1/3!+............
//C语言中,求e=1/1!+1/2!+…+1/n!精确到10ˉ8
#include<stdio.h>
intmain(void)
{
longn=0,ns=1;doublex=0.0f,y=0.0f,e=1.0f;
for(;;){
n++;/*计算n*/
ns*=n;/*计算n!*/
x=ns;
y=1.0f/x;/*计算1/n!*/
if(y<1e-8)break;/*如果足够小则停止*/
e+=y;/*计算e*/
}
printf("%9.8f ",e);/*输出结果*/
return0;
}
参考自:http://..com/link?url=U13lLtXlkIyBeFe4_G4I15Kc20oj9A0Xp__q
㈤ C语言:求e的近似值
这题目有点奇怪:计算精度到10^-4为止,输出却要到12位小数(要那么多位不准确的数?)
#include<stdio.h>
intmain()
{inti,t=1;
doublee=0;
for(i=1;t<10000;i++)
{e+=1.0/t;
t*=i;
}
printf("%.12lf
",e);
return0;
}
㈥ 用c语言编程,求无理数e的近似值,e为下列数列的前n项之和,n由键盘输入,e=1+1/1!+1/2
#include<stdio.h>
unsignedlongjc(intn);
voidfun(intn)
{
doublee=1.0;
inti;
for(i=1;i<=n;i++)
{
e=e+1.0/jc(i);
}
printf("%g ",e);
}
unsignedlongjc(intn)
{
if(n==1)
return1;
else
returnn*jc(n-1);
}
intmain()
{
intn;
while(scanf("%d",&n)!=EOF)
{
fun(n);
}
return0;
}

㈦ c语言 求e的近似值e=1+1/1!+1/2!+1/3!+……当最后一项小于10的6次方。
#include<stdio.h>
intmain(){
floatp=1,a=1,e=1;
while(1/a>=1e-6){
a*=p;
e+=1/a;
p++;}
printf("e=%f ",e);
return0;
}

㈧ c语言编程题,求e的近似值,e=1/1!+1/2!+1/3!+......+1/n!,累加项小于1
楼主你好!
首先你的公式我认为是错的!前面第一项漏加了个1
正确的公式为:e=1+1/1!+1/2!+1/3!+......+1/n!
代码实现如下:
#include<stdio.h>
int
fun(int
n)
{
if(n
==
1)return
1;
return
n*fun(n-1);
}
int
main()
{
double
sum
=1.0
;
int
i
=
1;
while((1.0/fun(i))>=1e-8)
{
sum
+=(1.0/fun(i));
i++;
}
printf("%.8lf",sum);
}
运行结果为2.71828183
网上查到的值2.718281828459
由此可知,前8位小数基本一样!
希望我的回答对你有帮助!
望采纳!谢谢!
