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/06/22 03:43:05
![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](/uploads/image/z/7246316-20-6.jpg?t=c%E8%AF%AD%E8%A8%80+%E6%B1%82e+%E7%94%A8do-while%E6%B1%82e%3D1%2B1%2F1%21%2B1%2F2%21%2B.%E8%AF%AF%E5%B7%AE%E5%B0%8F%E4%BA%8E10%5E5%E6%88%91%E9%94%99%E5%93%AA%E4%BA%86%23includemain%28%29%7Bfloat+x%3D0%2Cm%3D1%3Bint+n%3D1%3Blong+i%3D1%3Bdo%7Bx%3Dx%2Bm%3Bi%3Di%2An%3Bn%2B%2B%3Bm%3D1%2Fi%3B%7Dwhile%28m)
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控制吧