Función sqrt ANSI C

double sqrt(double x);

Calcula la raíz cuadrada del valor no negativo de x. Puede producirse un error de dominio si x es negativo.

Valor de retorno:

La función sqrt retorna el resultado de la raíz cuadrada de x.

Ejemplo:

#include <stdio.h>
#include <math.h>

int main()
{
   double x = 6.54321;

   printf( "sqrt( %f ) = %f\n", x, sqrt(x) );
   return 0;
}


suministrado por FreeFind
Valid HTML 4.0! Valid CSS!

Comentarios de los usuarios (2)

eliasmtz
2011-03-31 19:14:34

Soy nuevo por aquí, y tengo una duda don respecto a la raiz cuadrada; cuando intento contruir el siguiente algoritmo...

#include <stdio.h>

#include <math.h>

int main()

{

float art=0.0, x=0.0;

scanf("%f", &x);

art=sqrt(x);

printf( "sqrt( %f ) = %f\n", x, art);

return 0;

}

Me sale el siguiente error al contruir...

gcc -Wall -o "sin título" "sin título.c" (en el directorio: .)

/tmp/cch8WCYU.o: In function `main':

sin título.c:(.text+0x4d): undefined reference to `sqrt'

collect2: ld returned 1 exit status

Ha fallado la compilación.

Alguien sabe porque este error?? Gracias de antemano :D

Steven
2011-03-31 20:13:40

Hola Elías,

Técnicamente hablando, la compilación si se pudo realizar, pero no el enlazado. La razón de que el enlazador (linker, en inglés) no pudo terminar sin errores es porque no pudo encontrar la biblioteca matemática estándar. GCC por defecto no incluye esta biblioteca en el enlazado. Por lo tanto, debes incluirla explícitamente.

En la línea de comando escribe:

gcc -lm -Wall -o "sin título" "sin título.c"

"-l" sirve para indicar una biblioteca para el enlazador. En este caso, queremos la biblioteca "libm.a".

Si usas un IDE (Entorno Integrado de Desarrollo), entonces sugiero crear un proyecto para la consola y agregar este fichero fuente a ello. En general, SIEMPRE crea un proyecto, por muy sencillo que sea el programa. Posteriormente, elige la opción de "construir proyecto"; y no "compilar".

Espero haber aclarado la duda.

Steven