C语言求帮助!!求e的近似值,用1/1!+1/2!+1/3!+.......1/n!

# include "stdio.h"
void main()
{
int n=1;
long k=1;
float sum=0;
while(sum>1e-6)
{
k *= n;
sum += 1.0/k;
n++;

}
printf("%.2f\n",sum);
}

}

为啥子没有运行结果,怎么错了!运行不正确。。求解。。希望能告之我哪错了。。

判断条件错了
while(sum>1e-6)
开始sum被初始化为0,直接就不满足while条件,while根本不执行
应该用while(1.0/k >1e-6)
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-05-23
首先:%0.2f表示小数点后只要两位的喔?
其次:错误是在while(sum>le-6),这个是因为,刚刚开始的时候,sum就是一个0,不大于le-6,所以,sum的结果是0。
最后稍微改动了一下:
# include "stdio.h"
void main()
{
int n=1;
long k=1;
float sum=0;
float temp = 1;
while(temp>1e-6)
{
k *= n;
temp = 1.0/k;
sum += temp;
n++;
}
printf("%.2f\n",sum);
}
第2个回答  2011-08-03
while(sum>1e-6) 变成1.0/k>1e-6
第3个回答  2011-08-03
sum>1e-6 while的初始条件 sum=0 是否>1e-6

C语言编程序,求e的近似值e≈1+1\/2!+1\/3!+…+1\/n!
double item=1,sum=1,n=1;do { item*=1.0\/n;sum+=item;n++;}while(fabs(item)>=1e-4);printf("The sum is lf\\n",sum);return 0;}

...要求求e的值,e约等于1+1\/1!+1\/2!+1\/3!+...+1\/N! 要求直至最后一项的...
void main(){ double b=1,a=1,n,i,j=1;while(a>=1e-7){ n=1;i=1;while(i<=j){ n=n*i;i++;} a=1\/n;b=a+b;j++;} printf("%f\\n",b);} 看不清楚你写的是小于10的几次方,我这是小于10的-7次方

C语言:按泰勒级数公式e = 1 + 1\/1! + 1\/2! +1\/3! + ... + 1\/n!求e...
} printf("e的值为:%.6f\\n",sum); return 0;}int jiecheng(int N){ if(N==0 || N==1) return 1; else return N*jiecheng(N-1);}运行结果如下:

...用do-while语句编写程序计算e≈1+1\/1!+1\/2!+1\/3!+…+1\/n! ._百度...
return n*f(n-1);} int main(){ double index,s=0;int n,i;printf("输入一个正整数n(n<34):");scanf("%d",&n);i=0;do{ index=1\/(1.0*f(i));s+=index;i++;}while(i<=n);if(n==0)printf("e≈1");else if(n==1)printf("e≈2");else printf("e≈1+1\/1!+...

编写程序,求e的值。e≈1+1\/1!+1\/2!+1\/3!+1\/4!+…+1\/n!用while循环,要求...
具体m的值是多少是不可预见的,按照程序的执行顺序,所以当执行while(m>=1e-6){ }的时候,由于具体m是多少不知道,它的值可能小于1e-6,也可能大于等于1e-6,就达不到你的预期,你在while()前面加一条为m赋值的语句或者直接定义的时候赋值,并且使括号中的判断条件为真,试试。

编写C程序:求1\/1!+1\/2!+1\/3!+...+1\/n!(n!=1*2*3*4...n)急!急!帮帮啊...
include <stdio.h> main(){ int i,n,j=1;double sum=0;printf("输入n的值:");scanf("%d",&n);for(i=1;i<=n;i++){ j=j*i;sum=sum+(1\/double(j));printf("%d ,%f\\n",j,sum);} printf("sum=%f\\n",sum);}

c语言 用e=1+1\/1!+1\/2!+1\/3!+...的公式求e的近似值,直到最后一项的绝对...
include <stdio.h> int main(){ double e,t;int i;for(e=1,i=1,t=1;t>=1e-6;++i)e+=t\/=i;printf("%lf\\n",e);return 0;}

c语言 求e的近似值e=1+1\/1!+1\/2!+1\/3!+……当最后一项小于10的6次方...
include <stdio.h>int main(){ float p=1,a=1,e=1;while(1\/a>=1e-6){a*=p;e+=1\/a;p++;}printf("e=%f\\n",e);return 0;}

用c++编写e=1+1\/1!+1\/2!+1\/3!...1\/n!,计算e的值。要求:1用for循环计...
include<iostream> double fact(int n) \/\/求阶乘。{ int i;double re;re =1;for(i=1;i<=n;i++){ re *=i;} return re;} int main(){ double e=0.0;int i;e=1.0;double temp;for(i=1;i<50;i++) \/\/for的循环。{ temp=1.0\/fact(i);e +=temp;} \/\/printf("e...

C语言 编写程序求e的值 e=1+1\/1!+1\/2!+1\/3!+...
;getchar();return 0;} 或:public class Test{ public static void main(String args[]){ double sum=1,n=1;double e=1;for(n=1;n<=10;n++){ sum=sum*n;e+=1\/sum;} System.out.println("e="+e);} } 得到的值为:2.7182818011463845...随着n值越专大得到的e值越精属确。

相似回答