#include<stdio.h>
#include<math.h>
long js(int k)
{
long j=1;
int i;
for(i=1;i<=k;i++)
j*=i;
return (j);
}
main()
{
double e=0.0;
int i;
for(i=1;i<=10;i++)
{
e+=1.0/js(i);
if (1.0/js(i)<pow(10,-7))
break;
}
printf("e=%f",e);
}
这个可能是对的,我试了一下,结果为1.718282
----------------解决方案--------------------------------------------------------
呵呵,对了,以后还请大家多多关照
----------------解决方案--------------------------------------------------------
写一段代码不仅仅要达到预期得效果,关键还要精简易读,这样才能提高代码的维护性和缩减开发的时间和费用.其实一楼的思路还是可以的,不过错在一些细节上,没有准确把握每个变量的作用,稍加改动即口,程序也变得简单易懂.我是些JAVA的,望一楼的朋友运行试一下.
#include<stdio.h>
main()
{ float t=1.0,e=0.0;
int i=0,j=1;
while(t>=1e-7) /* 或改为while(j<1e7) */
{i=i+1;
j=j*i;
t=1.0/j;
e=e+t;
}
printf("e=%f",e);
}
----------------解决方案--------------------------------------------------------