Hi mates, I'm having problems with a "nan" output
Look the code below
Code:
#include <stdio.h>
#include <stdlib.h>
float raiz(float n, float *p);
int main()
{
float n, r = 1, *p;
p = &r;
do
{
printf("Entre com o número cuja raiz será calculada\n");
scanf("%f", &n);
if(n < 0)
printf("Não há raiz quadrada real para números negativos\n");
}while(n < 0);
printf("O valor da raiz quadrada de %.2f é %.2f\n", n, raiz(n, p));
return 0;
}
float raiz(float n, float *p)
{
if(abs(*p * *p - n) < 0.001){
printf("%.2f", *p);
return (*p);
}
else{
*p = (*p * *p + n)/(2 * *p);
raiz(n, p);
}
}
I think I'm not doing well the return of the function "raiz", because the value is well shown inside the function...
Thanks in advance.