Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: -Gtz- en 6 Abril 2012, 04:13 AM

Título: Problema con pow()
Publicado por: -Gtz- en 6 Abril 2012, 04:13 AM
Hola que tal, veran al compila este programa:

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

int main(void)
{
float lado, abase, alateral, atotal, volumen;

printf("Introduzca la medida del lado del cubo: ");
scanf("%f", &lado);

abase = pow(lado, 2);
alateral = 4 * abase;
atotal = 6 * abase;
volumen = pow(lado, 3);

printf("el area de la base es %.2f, el area lateral %.2f, al area total %.2f y el volumen es %.2f", abase, alateral, atotal, volumen);


al compilarlo me aparece:

Citarps113.c:14: undefined reference to 'pow'
collect2: ld returned 1 exit status

parece que el error esta en el segundo pow(), pero si cambio el 3 del exponente por un 2 como el primero si me lo compila, por que pasa estos con algún otro valor diferente a 2?
Claro que lo puedo evitar poniendo:

volumen = lado * lado * lado

pero quiero saber por que me tira el error.
Título: Re: Problema con pow()
Publicado por: Beakman en 6 Abril 2012, 05:28 AM
Eso es común en gcc.

Sí estás compilando desde consola solo tenés que agregarle -lm:
gcc main.c -o main -lm
Título: Re: Problema con pow()
Publicado por: -Gtz- en 6 Abril 2012, 05:53 AM
Si creo que -lm es para que al compilar en gcc puedas usar sin nungun problema la libreria math.h, eso lo comprendo, lo que no es entiendo es por que asi no me compila:

abase = pow(lado, 2);
alateral = 4 * abase;
atotal = 6 * abase;
volumen = pow(lado, 3);


pero si cambio el 3 por un 2:

abase = pow(lado, 2);
alateral = 4 * abase;
atotal = 6 * abase;
volumen = pow(lado, 2);


me compila sin ningun problema

Nota: Uso el compilador ZinjaI en Fedora 16
Título: Re: Problema con pow()
Publicado por: -Gtz- en 6 Abril 2012, 06:14 AM
Que tonto soy, sorry sorry, bueno parece es un problema del compilador, lo compile desde terminal y me lo compilo perfectamente, creo que debí haber hecho eso desde un principio, aunque no entiendo por que actua de esa manera el compilador?
Título: Re: Problema con pow()
Publicado por: GROV en 7 Abril 2012, 04:00 AM
Así es, es un problema del compilador, he usado ZinjaI varias veces, y es muy atractivo debo admitirlo y tiene cosillas interesantes pero también me he topado con alguno que otro problemita, como este por ejemplo.

Saludos afectuosos!!