c语言 求e 用do-while求e=1+1/1!+1/2!+.误差小于10^5我错哪了#includemain(){float x=0,m=1;int n=1;long i=1;do{x=x+m;i=i*n;n++;m=1/i;}while(m

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/01 23:00:21

c语言 求e 用do-while求e=1+1/1!+1/2!+.误差小于10^5我错哪了#includemain(){float x=0,m=1;int n=1;long i=1;do{x=x+m;i=i*n;n++;m=1/i;}while(m
c语言 求e 用do-while
求e=1+1/1!+1/2!+.误差小于10^5我错哪了
#include
main()
{float x=0,m=1;
int n=1;
long i=1;
do{
x=x+m;
i=i*n;
n++;
m=1/i;
}while(m

c语言 求e 用do-while求e=1+1/1!+1/2!+.误差小于10^5我错哪了#includemain(){float x=0,m=1;int n=1;long i=1;do{x=x+m;i=i*n;n++;m=1/i;}while(m
3个错误1:少C的头文件#include因为你用了printf函数;
2:i应该改成float型,因为m是float型,不改的话两个整形相除就取整数了,不如1/10的话结果是0;
3:m0.00001,否则你输出的果是1了,因为m的初值就是1不满足循环条件,循环体只执行一次就停了.
我在调试的时候还会有一个警告,原因是没有写明返回值,所以还要加个void.
#include
#include
void main()
{float x=0,m=1;
int n=1;
float i=1;
do{
x=x+m;
i=i*n;
n++;
m=1/i;
}while(m>0.00001);
printf("x=%f\n",x);
}
我在Truboc上运行成功了

m<0.00001 应该改为m>0.00001

你的M与X用DOUBLE表示吧...

用m>0.00001控制吧