编写程序,求e的值.e=1+1/1!+1/2!+1/3!+1/4!+....+1/n!(1)

用for循环,计算前50项,用while循环,要求直到最后一项的值小于10-4.
我是初学者,请各位帮忙解决一下,谢谢了.
请问一下,为什么我把下边的程序掉到C里,运行后的结果是:
(Floating point error: Dinide by 0.)
这是为什么啊!谁能告诉我一下,谢谢了!

main(){
int i,j=1,number,s=1;
double m=0,t=0;
for(number=1;number<=50;number++) {
for(;j<=number;j++)
s=s*j;
m=m+1.0/s;
}
//m即为前50项的和

s=1;
i=1;
do {
s=s*(i++);
t=t+1.0/s;
}
while(1.0/s>=0.0001) ;
//t即为当最后一项小于10-4时的e的近似值。

}

以上是用C语言编的程序。

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2006-08-26
main()
{
int i,n,s=1;
double m=0;
for(n=1;n<=50;n++)
{
for(i=1;i<n;i++)
s=s*i;
m=m+1.0/s;
}
}//求前50项的和

main()
{
int i=1,s=1,n;
double m=0;
for(n=1;n<=50;n++)
{
do
{ s=s*(i++);
t=t+1.0/s;
}
while(1.0/s>=0.0001)
}
}//求前n项的和直到最后一项的值小于"10的-4方"本回答被网友采纳
第2个回答  2019-10-18
main()
{
int
i,n,s=1;
double
m=0;
for(n=1;n<=50;n++)
{
for(i=1;i<n;i++)
s=s*i;
m=m+1.0/s;
}
}//求前50项的和
main()
{
int
i=1,s=1,n;
double
m=0;
for(n=1;n<=50;n++)
{
do
{
s=s*(i++);
t=t+1.0/s;
}
while(1.0/s>=0.0001)
}
}//求前n项的和直到最后一项的值小于"10的-4方"
第3个回答  2006-08-26
简单,就是简单的循环
可以用递归做
第4个回答  2006-08-26
此问题太过简单 不于回答
相似回答