Hola amigos,
resulta que a mi hermano le han mandado hacer en clase un sencillo programa C que sirva para resolver una ecuación de segundo grado así que me puse a echarle una mano y éste es programa que finalmente creamos:
#include<stdio.h>
#include<math.h>
int main(){
float a, b, c, d;
printf("Se supone una ecuación de grado dos del tipo ax2+bx+c=0"
"\nIntroduzca el valor correspondiente a \"a\"");
scanf("%f", &a);
printf("Introduzca el valor correspondiente a \"b\"");
scanf("%f", &b);
printf("Introduzca el valor correspondiente a \"c\"");
scanf("%f", &c);
if(a==0.0)
if(b==0.0) /*Ecuación degenerada*/
printf("La ecuacion es degenerada\n");
else /*Ecuación de raíz única*/
printf("La ecuacion tiene una raiz unica igual a %.2f\n", -c/b);
else{
d=b*b-4*a*c; /*Discriminante*/
if(d>=0.0) /*Raíces reales*/
printf("Las soluciones de la ecuacion son %.2f y %.2f\n",
(-b+sqrt(d))/(2*a), (-b-sqrt(d))/(2*a));
else /*Raíces complejas*/
printf("La ecuación tiene por solución 2 raices complejas de la forma "
"x+yi, x-yi\n");
}
return 0;
}
Aparentemente el programa deberia funcionar a la perfección y cuál fue mi sorpresa cuando al compilar aparecen los siguientes errores:
undefined reference to 'sqrt'
undefined reference to 'sqrt'
Y no entiendo porqué le compilador dice que la función sqrt no está definida si en la línea 2 del programa está incluída la cabecera math.h
Yo trabajo con Linux y utilizo el compilador gcc y la única explicación que se me ha pasado por la cabeza es que a lo mejor el compilador no es capaz de acceder a las funciones de la librería math, ¿qué opinais vosotros? Yo es que en el código no veo ningún error por más que lo reviso.
Saludos y gracias de antemano por vuestra ayuda