用while或do-while语句编写程序,计算e约等于1+1/1!+1/2!+…+1/n!
1个回答

方法1

#include

void main()

{

float e,a; int i,n=0; /*涉及到小数运算要用浮点型变量*/

e=1,a=1; /*a=1在后面有乘积运算*/

for(i=1;1/a>1e-5;i++) /*条件循环语句*/

{

a*=i; /*级乘的算法*/

e+=1/a ; /*e的运算方法*/

n++;

}

printf("%f,n=%dn",e,n);

}

方法2

#include

int main( )

{

float s = 1,n = 1;int t = 1;

while ( 1 / n >= 0.00001 )

{

s+=1/n;

t++;

n=n*t;

}

printf("%f,n=%dn",s,t);

return 0;

}

方法3

#include

void main()

{

int i=1,j=1;

float e=1.0,k;

do{

j=i*j;

k=1.0/j;

e=e+k;

i++;

}while(k>1e-5);/*判断误差是否小于给定的误差限E=0.00001 */

printf("%f,n=%dn",e,i);

}