成教毕业证样本:高手帮一下帮啊!!!

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 22:45:16
#include "stdio.h"
main()
{

double detax,y,x,e=1.0;
printf("please input a number\n");
scanf("%lf",&detax);
x=1.0 ;
y=1/x;
while(y>=detax)
{
x=1*x;
y=1/x;
e=e+y;
++x;
}
printf("%12.10lf",e);
}
错在哪里啊
下面是正确的
#include "stdio.h"
main()
{
int i=1;
double detax,y,x,e=1.0;
printf("please input a number\n");
scanf("%lf",&detax);
x=1.0 ;
y=1/x;
while(y>=detax)
{
x=i*x;
y=1/x;
e=e+y;
++i;
}
printf("%12.10lf",e);
}
输入0。000000001
结果是2。7182818284
为什么第一个程序的结果和第二个程序的结果对不上啊

上面错在:
x=1*x;
不能用数字“1” 去乘它。
你的目的是累乘。

另开累乘器double s=1.0; 累乘器初值为1。
程序改成如下:

#include "stdio.h"
main()
{
double s=1.0; // 另开累乘器
double detax,y,x,e=1.0;
printf("please input a number\n");
scanf("%lf",&detax);
x=1.0 ;
y=1/x;
while(y>=detax)
{
s= s * x; // 累乘器s
y=1/s;
e=e+y;
++x;
}
printf("%12.10lf",e);
}

please input a number
0.000000001
2.7182818284 // 自然对数的底2.7182818284590

整型变量才能 作自增(++),自减(--) 运算啊,你的第一个过程里面, 把X 自增了 它不是整型变量所以出错了:)

第一个程序里面++X,是不正确的,如果把X定义为整数就对了,++操作符不能对浮点数操作,如果操作可能会出现意外值,你可以监视以下++X值得变化来看看是不是问题出在这里。