Ayuda en algoritmo para sacar raiz cuadrada

redknight

Bovino maduro
#1
Que onda chavos, estaba haciendo un programa para obtener la raiz cuadrada en lenguaje C de cualquier numero pero no me da el resultado correcto, alguien me podria decir que está mal?

Código:
#include <stdio.h>

float fabsoluto (float x) {
      if(x<0) {
              return(-1 * x);
      }
      return(x);
}

main () {
     float R = 2, error = 1, fx = 0, temp = 1.0;
     printf("Introduzca el valor para obtener la raiz cuadrada\n");
     scanf("%f", &fx);
     while(error > 0.000001) {
                 fx = (1 / 2.0) * (temp + (R / temp));
                 error = fabsoluto(fx - temp);
                 temp = fx;
     }
printf("%.2f", fx);
getche();
return 0;
}
Todo esto sin utilizar la libreria math.h
 

GeorgeSouthy

Bovino adolescente
#2
Esto es lo que vi de tu código:

#include <stdio.h>

float fabsoluto (float x) {
if(x<0) {
return(-1 * x);
}
return(x);
}

main () {
float R = 2, error = 1, fx = 0, temp = 1.0;
printf("Introduzca el valor para obtener la raiz cuadrada\n");
scanf("%f", &fx);
while(error > 0.000001) {
(1 / 2.0) * (temp + (R / temp)); //Aquí la Operación se ejecuta pero no se almacena y por ende nadie utiliza el valor obtenido
error = fabsoluto(fx - temp);
temp = fx;
}
printf("%.2f", fx); //Mandas a Imprimir fx, pero esta tiene el valor por la asignación que hiciste temp=fx;
getche();
return 0;
Otra cosa, si utilizas flotantes, maneja solo flotantes ya que no se si el compilador te de un error Semántico en 1/2.0, saludos
 

Tlacatl

Bovino adicto
#4
(1 / 2.0) * (temp + (R / temp)); //Aquí la Operación se ejecuta pero no se almacena y por ende nadie utiliza el valor obtenido

AHI se hace la op, pero segun tu, donde se guarda el resultado de esa operacion... mmm primero piensale carnal, y despues haces tu tarea, ok?
 

humi255

Bovino maduro
#7
Hola que tal amigo:
(1 / 2.0) * (temp + (R / temp)... en esta parte, realizas la operacion pero no la estas guardando en alguna variable, quizas es por eso.
Tambien vi que no ingresaste la biblioteca math.h, quizas tambien por eso. Ojala te haya sido de ayuda :)
 
Arriba