以计算结果和和上次计算结果的差是否小于10的-6次方作为是否结束循环的标准
大家帮帮忙偶吧,就是用最简单的循环结构做
其实不难的,希望多多思考,不要形成依赖.帮你解决了,顺便贴出来.这个不是最好的算法,留给有心人去研究吧. #include<stdio.h> #include<conio.h>
int fact(int j)/*计算j阶乘*/ { int sum; if(j==0) sum=1; else sum=j*fact(j-1); return sum; } void main() { int i; float e,e1;/*e1是上次计算结果*/
e=1;e1=1; for(i=1;;i++) { e=e1+(float)1/fact(i); if((e-e1)<=0.000001) break;/*退出循环*/ else e1=e;/*否则继续*/ } printf("%f\n",e); getch(); }
[此贴子已经被作者于2005-10-7 2:34:10编辑过]
#include<stdio.h> #include<conio.h> main() { int sum,j; scanf("pleast input j");
if(j==0) sum=1; else while(sum=10e-6) sum+=1/j; j++;
} 高手们,这样可能会运行,可是我不知道怎么定义J定为阶乘
#include "Conio.h"
int main(void) {double m=1,i=1; double ss=1,n=1.0; clrscr(); while(n/m>1e-6) {ss+=n/m; i++; m*=i; } printf("%f",ss); getch(); return 0; }这样简单些!!!!