I have this code that should calculate the square root of a number useing newton's method.
It compiles and runs , but while I debug ,it doesn't give the right answer for most numbers (except for the roots of 4,16,25, 36 etc)thanks for any help !
Code:#include <stdio.h>
int squareRoot(int num,int ans,int tol);
int main(void)
{
int num,ans,tol,root;
printf("Enter the number you want squarerooted");
scanf("%d",&num);
printf("Enter your guess of the number's root");
scanf("%d",&ans);
printf("Enter the pretidetermined tolerance");
scanf("%d",&tol);
root = squareRoot(num,ans,tol);
printf("%d%d","The square root of ",num," is:",root);
}
int squareRoot(int num,int ans,int tol)
{
if((ans^2 - num <= tol))
return ans;
else
return (squareRoot(num,((ans^2 + num)/(2 * ans)),tol));
}