🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: es.comp.os.linux.programacion
4 messages
4 total messages Started by |||RIP||| Mon, 23 Oct 2006 18:09
Problemas con C
#685
Author: |||RIP|||
Date: Mon, 23 Oct 2006 18:09
62 lines
2793 bytes
El codigo de abajo me compila pero no me deja construir el ejecutable, 
en cambio en windows si me deja, �por que?, �como lo soluciono?

El error que me da es que en las lineas 23 y 24 no esta definida la 
referencia a sqrt

23.    solucion1 = ECUACION_POSITIVA(a1,b1,c1);
24.    solucion2 = ECUACION_NEGATIVA(a1,b1,c1);

Os pego el codigo y perdonad por el tocho!!!

Graciasss!!!
========================================================================
/* Created by Anjuta version 1.2.4a */
/*	This file will not be overwritten */

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

#define PI 3.141591

// Hago dos funciones, una para valores + y otra para los -
// La raiz del polinomio de 2� grado seria esto: sqrt((b*b)-(4*a*c))
#define ECUACION_POSITIVA(a, b, c) ((-b + sqrt((b*b)-(4*a*c))) / (2*a))
#define ECUACION_NEGATIVA(a, b, c) ((-b - sqrt((b*b)-(4*a*c))) / (2*a))
#define VOLUMEN_CILINDRO(r, h) (PI*r*r*h)


int main()
{
	double a1, b1, c1, solucion1, solucion2;
	
	printf ("Introduce los coeficientes (a, b, c): ");
	scanf ("%lf, %lf, %lf", &a1, &b1, &c1);

     solucion1 = ECUACION_POSITIVA(a1,b1,c1);
     solucion2 = ECUACION_NEGATIVA(a1,b1,c1);

	if (a1 != 0) {
		
         printf ("\nSolucion 1: %.2lf", solucion1);
		printf ("; Solucion 2: %.2lf\n", solucion2);
		
		if (solucion1 > solucion2) {
		   printf ("\nRadio: %.2lf",solucion1);
		   printf ("; Altura: %.2lf",solucion2);
  	       printf (", Volumen = %.2lf", VOLUMEN_CILINDRO(solucion1, 
solucion2));
          } else {
		   printf ("\nRadio: %.2lf",solucion2);
		   printf (" Altura: %.2lf",solucion1);
		   printf (" Volumen = %.2lf", VOLUMEN_CILINDRO(solucion2, solucion1));
          }
		
		return (0);

	} else {

		printf ("El parametro a no puede ser 0");	
		return (-1);
	}	
}
Re: Problemas con C
#686
Author: Oscar Garcia
Date: Mon, 23 Oct 2006 18:15
19 lines
1373 bytes
On Mon, 23 Oct 2006 20:09:20 +0200, |||RIP||| <ripland@gmail.com>
wrote:
>#include <math.h>

Recuerda que debes enlazar el programa con la librer�a matem�tica
cuando uses ld (o bien cuando uses gcc):

gcc -o programa -lm programa.c

(por ejemplo).

-lm se encarga de enlazar las librer�as matem�ticas.

Un saludo.

-- 
�scar Javier Garc�a Baudet
LinaresDigital
http://redstar.linaresdigital.com/
Re: Problemas con C
#687
Author: |||RIP|||
Date: Mon, 23 Oct 2006 18:42
20 lines
1591 bytes
Oscar Garcia escribi�:
> On Mon, 23 Oct 2006 20:09:20 +0200, |||RIP||| <ripland@gmail.com>
> wrote:
>> #include <math.h>
> 
> Recuerda que debes enlazar el programa con la librer�a matem�tica
> cuando uses ld (o bien cuando uses gcc):
> 
> gcc -o programa -lm programa.c
> 
> (por ejemplo).
> 
> -lm se encarga de enlazar las librer�as matem�ticas.
> 
> Un saludo.
> 

A�adi al Anjuta el -lm que decias y ya me chuta.

Muchas graciasss.
Re: Problemas con C
#688
Author: Pascal Bourguignon
Date: Mon, 23 Oct 2006 18:56
19 lines
1834 bytes
|||RIP||| <ripland@gmail.com> writes:

> El codigo de abajo me compila pero no me deja construir el ejecutable,
> en cambio en windows si me deja, �por que?, �como lo soluciono?
>
> El error que me da es que en las lineas 23 y 24 no esta definida la
> referencia a sqrt

Las funciones matematicas estan en una bibloteca separada, libm
Tienes que a�adir el opci�n -lm   para el editor de enlaces.

gcc -o volumen volumen.c -lm



-- 
__Pascal Bourguignon__                     http://www.informatimago.com/

"A TRUE Klingon warrior does not comment his code!"
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads