lnessuno
11-01-2003, 15:52
salve... x fare una prova ho copiato dal libro di testo il listato di un programma in C per calcolare le equazioni di secondo grado, e ho un problema nella compilazione... non riesco a capire qual è l'errore... quando compilo mi da questo errore:
[lele@localhost lele]$ make prova
cc prova.c -o prova
/tmp/ccIwENvZ.o: In function `main':
/tmp/ccIwENvZ.o(.text+0x1a3): undefined reference to `sqrt'
collect2: ld returned 1 exit status
make: *** [prova] Error 1
questo è il codice:
#include <stdio.h>
#include <math.h>
float a, b, c, delta;
float x1, x2, w, w1, w2, mdelta;
main()
{
printf ("Coeff a = ");
scanf ("%f", &a);
printf ("\nCoeff. b = ");
scanf ("%f", &b);
printf ("\nCoeff c = ");
scanf ("%f", &c);
if (a==0)
{
if (b==0)
{
if (c==0)
{
printf ("\nEquazione indeterminata\n");
}
else
{
printf ("\nEquazione impossibile\n");
}
}
else
{
x1=-(c/b);
printf ("Equazione di I grado: x1=%f\n", x1);
}
}
else
{
delta=b*b-4*a*c;
w = 2*a;
w1=-(b/w);
mdelta=fabs(delta);
w2 = sqrt(mdelta) /w;
if (delta==0)
{
printf("radice doppia: w1=%f\n",w1);
}
else
{
if (delta < 0)
{
printf("\nRadici complesse coniugate:\n");
printf("parte reale=%f",w1);
printf("parte immaginaria = %f\n",w2);
}
else
{
x1=w1+w2;
x2=w1-w2;
printf("\nRadici reali: x1=%f",x1);
printf("x2=%f\n",x2);
}
}
}
}
[lele@localhost lele]$ make prova
cc prova.c -o prova
/tmp/ccIwENvZ.o: In function `main':
/tmp/ccIwENvZ.o(.text+0x1a3): undefined reference to `sqrt'
collect2: ld returned 1 exit status
make: *** [prova] Error 1
questo è il codice:
#include <stdio.h>
#include <math.h>
float a, b, c, delta;
float x1, x2, w, w1, w2, mdelta;
main()
{
printf ("Coeff a = ");
scanf ("%f", &a);
printf ("\nCoeff. b = ");
scanf ("%f", &b);
printf ("\nCoeff c = ");
scanf ("%f", &c);
if (a==0)
{
if (b==0)
{
if (c==0)
{
printf ("\nEquazione indeterminata\n");
}
else
{
printf ("\nEquazione impossibile\n");
}
}
else
{
x1=-(c/b);
printf ("Equazione di I grado: x1=%f\n", x1);
}
}
else
{
delta=b*b-4*a*c;
w = 2*a;
w1=-(b/w);
mdelta=fabs(delta);
w2 = sqrt(mdelta) /w;
if (delta==0)
{
printf("radice doppia: w1=%f\n",w1);
}
else
{
if (delta < 0)
{
printf("\nRadici complesse coniugate:\n");
printf("parte reale=%f",w1);
printf("parte immaginaria = %f\n",w2);
}
else
{
x1=w1+w2;
x2=w1-w2;
printf("\nRadici reali: x1=%f",x1);
printf("x2=%f\n",x2);
}
}
}
}