牛顿法求方程的根,y=ln(x+3),初始值为x0=1,值不对,但不知道错哪里了

include

include

include

define e 2.714

int main ()
{
double a,b;
b=1;
a=b-(log(4)*4);
while (fabs(b-a)>1*e-6)
{
b=a;
a=b-log(b+3)/(1/(b+3));
}
printf("a=%ld");

http://wenku.baidu.com/link?url=yV2LCCLR5sPqXZsgvzr__jNfPuSj5YtxuHj9pzkT92PdUw9_KKY1-G9QSbOe17Nqjc5KrqRk2gZWkrpd7xeYL3PhMQwG6ROta_M1Wm6t7ba

1*e-6 这似乎不是C的浮点数表示方法
1e-6 这样写,应该没问题的
这个1 就不要省略了

你这样写
再加上
#
define e 2.72

这就变成 1*2.72-6 =-3.28了
这个比较明显有问题 所有数的绝对值,都比它大
另外,只有

%he,%e,%le,%Le //e格式 //有指数的时候,小写 e 输出小写 e,大写E输出大写E
%hf,%f,%lf,%Lf //f格式 //有指数的时候,小写 f 输出小写 e,大写F输出大写E
%hg,%g,%lg,%Lg //g格式 //有指数的时候,小写 g 输出小写 e,大写G输出大写E
三种 浮点数十进制输出格式,e,f,g 可大写(f本来是不可以的,后来可以了,hf是新加的,lf 曾经被删除,后来又补上了 )
后来补充了一种输出十六进制 浮点数的方法 p格式。