> printf("else %5f,%5f,%5f,%5f\n",a,b,c,d);

> d=c;
この時点で、下のwhile条件は成立しなくなるだろ。
d-cは0なんだから。