cant get my function to work!

in the following program i am trying to compte the square root usiing a function. everything works except i keep getting the number one printed out as the square root of any number. here is the code, thanks for your help!

Code:

`#include <stdio.h>`

#include <stdlib.h>

#include <math.h>

main() {

double square_root (double, double);

double tolerance;

double input;

double ans;

printf("Input tolerance for Newton's method: ");

scanf("%le", &tolerance);

printf("Input a non-negative number: ");

scanf("%le", &input);

ans = square_root (input, tolerance);

printf("The square root of: %1.15lf is %1.15lf\n", input, ans);

}

//function

double square_root (double i, double t) {

double r = 1;

while( fabs((r*r)-i) <= t ) {

r = (i/(r + r)) / 2;

}

return r;

}

**Code tags added by Kermi3**