#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;

}

return to programmi