#include<stdio.h> /* Equazione di secondo grado*/
#include<math.h>
int main( )
{ /* Questo programma calcola le soluzioni di una equazione di secondo grado con coefficienti a , b, c reali; per le soluzioni vengono riservate 10 cifre di cui 4 cifre per la parte decimale */
float a; float b,c; float x1,imx1,rex1; float x2,imx2,rex2;
float deltaquadro,duea,delta;
printf("\n_____________________________________________\n");
printf("\nInserire i coefficienti interi a, b, c\n");
scanf("\n%f",&a); scanf("\n%f",&b); scanf("\n%f",&c);
if(a!=0) /* se a e' diverso da zero allora*/
{ deltaquadro=b*b-4*a*c; duea=2*a;
if(deltaquadro>=0) /* le soluzioni sono reali distinte o coincidenti*/
{ delta=sqrt(deltaquadro); x1=(-b+delta)/duea; x2=(-b-delta)/duea;
printf("______________________________________________\n");
printf("\nEquazione: %fX^2 + %fX + %f = 0\n",a,b,c);
printf("\n Soluzione 1: X1 =%10.4f\n",x1);
printf("\n Soluzione 2: X2 =%10.4f\n",x2);
printf("______________________________________________\n");
} else /* calcolo delle soluzioni complesse coniugate */
{ deltaquadro=-deltaquadro; delta=sqrt(deltaquadro); imx1=(delta)/duea;
rex1=(-b)/duea; imx2=-imx1; rex2=rex1;
printf("______________________________________________\n");
printf("\nEquazione: %fX^2 + %fX + %f = 0\n",a,b,c);
printf("\n Soluzione 1: X1 =%10.4f +j * %10.4f\n",rex1,imx1);
printf("\n Soluzione 2: X2 =%10.4f +j * %10.4f\n",rex2,imx2);
printf("____________________________________________\n"); }
} else /* a e' uguale a zero*/
if(b= =0 && c= =0)
{ printf("\n____________________________________________\n");
printf("Equazione indeterminata"); }
else if(b= =0) {
printf("______________________________________________\n");
printf("\nEquazione impossibile"); }
else {
printf("______________________________________________\n");
printf("\n Soluzione di primo grado X = %10.3f",-b/c);
}
return 0;
}