Ciao a tutti, dovrei creare un programma in grando di calcolare il punto di intersezione tra una retta e una parabola, il problema è che non rileva il ciclo if.. Qualcuno saprebbe dirmi dove erro? grazie in anticipo, questo è il programma...
#include <stdio.h>
int main ()
{
int b, m;
float a, c, x1, x2, y1, y2, q;
printf ("\n Programma per calcolare il punto di intersezione tra retta di eq.ne y=mx+q e parabola di eq.ne y=ax^2+bx+c");
printf ("\n Introduci a, b, c: ");
scanf ("%f %d %f", &a, &b, &c);
printf ("\nintroduci m, q: ");
scanf ("%d %f", &m, &q);
printf ("\nL'eq.ne della retta vale y= %d x + %f");
printf ("\nL'eq.ne della parabola vale y= %f x^2 + %d x + %f ");
if ( (b-m)^2 -4*a*(c-q) ) >0
{
x1= -(b-m)+sqrt[(b-m)^2 -4*a*(c-q)];
x2= -(b-m)-sqrt[(b-m)^2 -4*a*(c-q)];
scanf ("%f %f", &x1, &x2);
y1= m*x1+q;
y2= m*x2+q;
scanf ("%f %f", &y1, &y2);
printf ("\nLa retta e' interna alla parabola e si intersecano in P (x1, y1) e in R (x2, y2)");
};
else if [(b-m)^2 -4*a*(c-q)]=0
{
x1= -(b-m)+sqrt[(b-m)^2 -4*a*(c-q)];
scanf ("%f", &x1);
y1= m*x1+q;
scanf ("%f", &y1);
printf ("\nLa retta e' tangente alla parabola e si intersecano in P (x1, y1)");
};
else [(b-m)^2 -4*a*(c-q)]<0
{
printf ("\nLa retta e' esterna alla parabola e non si intersecano in nessun punto");
}
return 0;
}