Erroroneous output in calculating the square root of a number

Dear All,

I have written a program to calculate the square root of an input number. It gives me an erroneous answer,for example, when I input the number 5, I get an answer 2.5 whereas I should get 2.24, same with other numbers. Below is the program, please point out bugs and fixes:

Code:

`#include<stdio.h>`

#include<stdlib.h>

#include<math.h>

int main()

{

float error=.00001,g1=0.0,g2=0.0,m;

printf("Enter number whose square root has to be calculated");

scanf("%f",&m);

g2=m/2;

while (abs(g1-g2)<error)

{

g1=g2;

g2=(g1+(m/g1))/2;

}

printf("The square root of entered number is %f",g2);

system("pause");

return 0;

}