编译c语言程序,求e,e=1+1/1!+1/2!+1/3!+......+1/n!

(1)用for循环,计算前50项。
(2)用while循环,直至最后一项的值小于1e-4

第1个回答  2011-07-26
(1)for循环:
#include "stdio.h"
void main()
{
int i;
long s=1;
double e=1.0;
for(i=1;i<=50;i++)
{
s*=i;
e+=1.0/s;
}
printf("%lf",e);
}
(2)while循环:
#include "stdio.h"
void main()
{
int i=1;
long s=1;
double e=1.0;
while(1.0/s>=1e-4)
{
s*=i++;
e+=1.0/s;
}
printf("%lf",e);
}
第2个回答  2011-08-10
stdafx.h是预编译头文件,顾名思义,预编译时使用,工程设置中如果不需要可以注释掉。如果需要可以自己生成一个,或从其他工程中复制。其做用是加速编译的d本回答被提问者采纳
第3个回答  2011-07-25
#include <stdio.h>
double fun(int n);
int main()
{
int i;
double e1=0,e2=0;
for(i=0;i<50;i++)
{
e1+=fun(i);
}
i=0;
while(fun(i)>=0.0001)
{
e2+=fun(i);
i++;
}
printf("%lf %lf\n",e1,e2);
return 0;

}

double fun(int n)
{
if(n==0||n==1)
return 1;
else return 1.0/n*fun(n-1);
}