Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

Ayuda en algoritmo para sacar raiz cuadrada

redknight

Bovino maduro
Desde
11 Ene 2010
Mensajes
231
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
 
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
 
creo ke el codigo de l raiz es "sqrt(variable)" con la libreria de #include <math.h>

saludoz
 
(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?
 
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 :)
 
Volver
Arriba