ciao a tutti, sto cercando di imparare a programmare in c, ho scritto un programma che dati i valori di a,b,c stampa il tipo di equazione e i risultati.

codice:
#include <stdio.h>
#include <stdlib.h>

int main()
{
int a;
int b;
int c;
int d2;
double d3;
double x;
double y;
double y2;
//risoluzioni espressioni di primo e secondo grado
printf("inserisci il valore di a \n");
scanf("%d", &a);
printf("inserisci il valore di b \n");
scanf("%d", &b);
printf("inserisci il valore di c \n");
scanf("%d", &c);
			printf("l'espressione inserita e': %d", a);
			printf("x^2 + %d", b);
			printf("x + %d", c);
			printf("=0 \n");

switch (a) {
case 0:
printf("l'equazione e' di 1^ grado \n");
x=(c*-1);
y=x/b;
printf("x=%f\n", y);
break;
default:
printf("l'equazione e' di secondo grado \n");
   switch (b) {
   case 0:
   printf("si tratta di un equazione pura \n");
   x=(c*-1);
39---   y=sqrt(x/a);
   printf("i risultati sono: x1=%f", -y);
   printf("; x2=%f\n", y);
   break;
   default:
   	  	switch (c) {
         case 0:
         printf("si tratta di un' equazione spuria \n");
         x=(b*-1);
         y=(x/a);
         printf("i risultati sono: x1=0; x2=%f \n", y);
         break;
         default:
         d2=(b*b-4*a*c);
53---         d3=sqrt(d2);
         printf("d: %f", d3);
         y=(-b-d3)/2*a;
         printf("%f -b", -b);
         printf("%f y:", y);
         y2=(-b+d3)/2*a;
         printf("i risultati dell'equazione sono: x1=%f", y);
         printf("; x2=%f\n", y2);
         break;
         }
   break;
   }
break;
}

fflush(stdin);
system("pause");
return 0;
}
il programma funzione, ma nelle righe 39 e 53

codice:
switch (b) {
      case 0:
      printf("si tratta di un equazione pura \n");
      x=(c*-1);
      y=sqrt(x/a);
      printf("i risultati sono: x1=%f", -y);
      printf("; x2=%f\n", y);
      break;
codice:
default:
         d2=(b*b-4*a*c);
         d3=sqrt(d2);
         printf("d: %f", d3);
         y=(-b-d3)/2*a;
         printf("%f -b", -b);
         printf("%f y:", y);
         y2=(-b+d3)/2*a;
         printf("i risultati dell'equazione sono: x1=%f", y);
         printf("; x2=%f\n", y2);
         break;
il programma sbaglia a calcolare la radice. inoltre ho dovuto dividere tutti i calcoli altrimenti i risultati erano completamente sbagliati.

codice:
x=(c*-1);
y=x/b;
printf("x=%f\n", y);
!=
codice:
x=(c*-1)/b;
printf("x=%f\n", x);
suggerimenti?