课本上的作业 C语言编写,求e的值.e≈1+1/1!+1/2!+1/3!+……+1/n! 用for循环,计算前50项. 我的exe运行不

课本上的作业 C语言编写,求e的值.e≈1+1/1!+1/2!+1/3!+……+1/n! 用for循环,计算前50项. 我的exe运行不了,提示什么意外关闭,以下的是我的代码
#include<iostream>
using namespace std;
int main()
{
for(int a=1,b=1,c=1,sum=0;a<=50;a++)
{
b=b*a;
c=1/b;
sum=sum+c;
}
cout<<"sum="<<sum;
return 0;
}
就是不知道为什么运行不了~~~

c 不应该是整型啊,c,sum应该定义成double ,c=1.0/b;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-20
把main()函数定义为void 型试试
第2个回答  2012-04-20
#include<iostream>
using namespace std;
int main()
{
double sum=1,c=1;
int a,b;
for(a=1,b=1;a<=10;a++)
{
b=b*a;
c=1*1.0/(double)b;
sum=sum+c;
}
cout<<"sum="<<sum<<endl;
return 0;
}
试试,我不知对不对! 50太大了超出整形所能表示的范围了吧!
第3个回答  2012-04-21
应该使用双循环
#include<iostream>
using namespace std;
void main()
{
inta,b=1 ,j,k;
double sum=1.0;
for(a=1;a<50;a++)
{
for(k=1;k<=a;k++)
b=b*k;
sum=sum+1.0/(double)b;
cout<<"sum="<<sum<<endl;
}
}本回答被提问者和网友采纳
第4个回答  2012-04-20
去掉return 0;
相似回答