/* sqt.c - calculate the square root of a number */
/* (see BEEBUG, 1988) */
/* rewritten in ANSI C May 1990 by D McSweeney  */
#include <stdio.h>
#define ACCURACY 1.0E-6
double sqt(float);

int main(void)
{
float n;

printf("give me a number; ");
scanf("%f", &n);

while(n != 0)
   {
   printf("You entered %f", n);
   printf(" square = %f", n*n);
   if(n > 0)
      printf(" root = %f \n", sqt(n));
   else
      printf(" *** Negative - no real root ***\n");
   printf("give me a number; ");
   scanf("%f", &n);
   }
} 
double sqt(float num)
{
double ans, acc;
acc=ans=num/2.0;
while(ans > 0 && acc > ACCURACY)    
   {
   ans=(ans+(num/ans))/2.0;
   acc=num - (ans*ans);
   if(acc < 0)
      acc = -acc;
   }
return(ans); 
}
