求助 谁帮我解一下: 用C语言; 求e的值 e= 1+1/1!+1/2!+........+1/n! 设计程序

要求用C语言
请用最基本的 C语言,因为本人 刚开始接触 c语言,谢谢了 !!!

#include <stdio.h>
void main()
{
int n,sigh=1;
float m=1,sum=1,term;
for(n=1;n<=1000;n++)
{
m=m*n; //用来计算N的阶乘
term=sigh/m; //用来计算1/N的值
sum=sum+term;
}
printf("%.10f\n",sum);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-05-14
#include <stdio.h>

long fact(long n)
{
if (n==0||n==1)
return 1;
return n*fact(n-1);
}

int main()
{
double e=0;
long n;
printf("Please input n:\n");
scanf("%ld",&n);
for (int i=0;i< n;i++)
{
e+=1.0/fact(i);
}
printf("%f",e);
printf("\n");

return 0;
}
可以输入n,然后求得对应的e值,当n给的越大时,得到的e值就会更精确!
第2个回答  2008-05-14
支持一楼!
#include <stdio.h>
int main()
{
double e=0;
for (int i=0;i<15;i++)
{
e+=1.0/fact(i);
}
printf("%f",e);

return 0;
}
long fact(long n)
{
if (n==0||n==1)
return 1;
return n*fact(n-1);
}
第3个回答  2008-05-14
一楼的很好!递归用的不错
第4个回答  2008-05-14
#include<stdio.h>
double f(int n)
{double m=1;int i;
for(i=1;i<=n;i++)
m*=i;
return m;
}
void main()
{
int n,i;double e=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
e+=1/f(i);

printf("%lf",e);
}
第5个回答  2008-05-14
long fact(long n)
{
if (n==0||n==1)
return 1;
return n*fact(n-1);
}

int main()
{
double e=0;
for (int i=0;i<15;i++)
{
e+=1.0/fact(i);
}
printf("%f",e);

return 0;
}
相似回答