C++ 【用for循环】(不是while !!!)实现求e的近似值,只能用一个函数 请问如下代码中的问题在哪里 15

e=1+1/1!+1/2!+1/3!+1/4!…………共求前五十项#include<iostream>usingnamespacestd;voidmain(){inti,... e=1+1/1!+1/2!+1/3!+1/4!…………共求前五十项

#include<iostream>
using namespace std;
void main()
{
int i,j=0;
double sum,s=0;
for(i=1;i<=50;i++)
{for(j=i;j>0;j--)
s=1/j;}
sum+=s;
cout<<"e近似等于"<<sum<<endl;
}
展开
 我来答
佬的啊我沙沟曾08
2012-08-23 · TA获得超过1045个赞
知道小有建树答主
回答量:305
采纳率:100%
帮助的人:324万
展开全部
你的i和j都是int 型的,所以再用1/j时会自动转化为int型
应该改成s=1.0/j

不过你的算法也有问题吧没有体现出阶乘来啊

void main()
{
int i,j=0;
double sum,s=0;
for(i=1;i<=50;i++)
{
n=i;
for(j=i-1;j>0;j--)
{
n=n*j;
}
s=1.0/n;
sum+=s;
}
cout<<"e近似等于"<<sum<<endl;
}

没有细推测
法彩丸5588
2012-08-23 · 超过11用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:19.9万
展开全部
这个代码完美运行
#include<iostream>
using namespace std;
void main()
{
int i,j=0;
double sum=0,s;
for(i=1;i<=50;i++)
{
{
s=1;
for(j=i-1;j>0;j--)
s*=j; //你没有乘法这步,n!=1*2*3*....*(n-1)*n;
#include<iostream>
using namespace std;
int main()
{
int i,j=0;
double sum=0,s;
for(i=1;i<=50;i++)
{
{
s=1;
for(j=i-1;j>0;j--)
s*=j;
}
s=1/s;
sum+=s;
}
cout<<"e近似等于"<<sum<<endl;
return 0;
}

}
s=1/s;
sum+=s;
}
cout<<"e近似等于"<<sum<<endl;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
diannaok
2012-08-23
知道答主
回答量:30
采纳率:0%
帮助的人:26.9万
展开全部
#include<iostream>
using namespace std;
int main()
{
int i,j=0;
double sum=1,s=0; // sum 从1开始
for(i=1;i<=50;i++){
s=1; // 这里赋值为1
for(j=i;j>0;j--)
s=s*j; // 从1开始乘 ,达到阶乘的目的 。
sum+=1/s; // 对于1到50中的每个i,此时加上i阶乘的倒数。
}

cout<<"e近似等于"<<sum<<endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fb922b4
2012-08-23 · 超过18用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:32.1万
展开全部
你的 问题很有问题啊,计算机根本就没法表示,就算是用最长的long double也没法表示1/50!啊,在计算到30几位的时候没法储存啦,
#include<iostream.h>
//using namespace std;
void main()
{
long double sum=1.0;long int s=1;
for(int i=1;i<=49;i++)
{
s*=i;
cout<<s<<endl; //每步看看数据
sum+=1.0/s;
cout<<sum<<endl; //输出每次的结果
}
cout<<"e近似等于"<<sum<<endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
LBEAR79
2012-08-25
知道答主
回答量:1
采纳率:0%
帮助的人:1597
展开全部
main函数修改如下(for循环中第二个条件也可改成i<=49)
void main()
{
int i;
double sum=1.0,s=1.0;
for(i=1;i<=50;i++)
{
s/=i;
sum+=s;
}
cout<<"e近似等于"<<sum<<endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式