Her er en mulig løsning:#include <stdio.h>
#include <math.h>
#define EPSILON 0.00001
double my_sqrt(double x);
int main(void) {
double d;
for(d = 1.0; d <= 25; d++)
printf("my_sqrt(%4f) = %8f sqrt(%4f) = %f\n", d, my_sqrt(d), d, sqrt(d));
return 0;
}
double my_sqrt(double a){
double guess = a / 3 , next_guess = 0;
int done = 0;
int c = 0;
while (!done){
next_guess = 0.5 * (guess + a / guess);
done = fabs(next_guess - guess) <= EPSILON;
guess = next_guess;
}
return guess;
}