#include<stdio.h>
#include<math.h>
#define M 0.0001
double f1(double x)
{
       return(exp(x)-1.0/x);
}
double f2(double x)
{
       return(exp(x)+1.0/pow(x,2));
}
int main(void)
{
       double x1=1.0,x2;
       do{
          x2=x1;
          x1-=(f1(x1)/f2(x1));
       }while(fabs(x2-x1)<M);
       printf("x=%f\n",x1);
       return(0);
}

ニュートン・ラフソン法でexp(x)-(1..0/x)を解く問題なのですが
なぜか1回しかループしません。だから答えが出ないんです。
教えてくんでゴメンナサイ、教えてください。