Archivo de la categoría: C/C++

No compila, error con libreria math.h en GNU/Linux (Solución)

Que es math.h?

math.h es un archivo de cabecera de la biblioteca estándar del lenguaje de programación C diseñado para operaciones matemáticas básicas. Muchas de sus funciones incluyen el uso de números en coma flotante

Me encontraba haciendo un programa en C en el cual citaba la función sqrt(x) para sacar la raíz de una operación, pero resulta que al momento de compilar con gcc me daba un error:

Screenshot from 2014-08-15 21:58:26

Bueno google y medio leí la verdad, que era algo con la librería .math cosa que yo ya la habi incluido, bueno le comente a un colega y me lo confirmo, entonces me coloque a leer sobre la librería .math en la Wikipedia bueno esto es lo que sucede:

Una nota importante: si se está programando en C/C++ bajo Gnu/Linux, y se utiliza uno de los compiladores nativos de este sistema operativo (gcc o g++), es necesario incluir, al compilar, la opción -lm, dado que, de lo contrario, el compilador generará un error. Por ejemplo, si tenemos un fichero fuente con funciones de la biblioteca matemática, llamado mi_fich_fuente_math.c, para compilarlo será necesario dar la orden siguiente en la consola de comandos (respectiva al intérprete):

$ gcc mi_fich_fuente_math.c -lm -o nombre_del_ejecutable

Listo esta es la solución, muy simple.


¹ http://es.wikipedia.org/wiki/Math.h

Anuncios

Programación en C Maximo Comun Divisor de dos numeros.

c-cpp

Hola colegas acá va uno de mis primeros ejercicios de C en el cual debo sacar el máximo común divisor de dos números. En este caso empleo el método de Euclides, que consiste en ir restando el número menor al mayor hasta obtener dos números iguales, momento en el cual tenemos el máximo común divisor.

//Maximum common divisor two numbers by xBalBan
//Metodo de Euclides
#include "stdio.h" 
main(){
	int x,y,mcd;
	int n1,n2;	

	printf("--------------------------------------\n");
	printf("|Maximo comun divisors de dos numero.|\n");
	printf("--------------------------------------\n");
	printf("Digite primer numero positivo:\n");
	scanf("%d", &x);
	printf("Digite segundo numero positivo\n");
	scanf("%d", &y);

	n1=x;
	n2=y;

	while(n1!=n2){
		if (n1>n2)
		n1 -= n2;
		else
		n2 -= n1;
	}
	mcd=n1;
	printf("El M.C.D. de %d y %d es %d\n", x, y, mcd);
}