Salve a tutti ho un piccolo codice che ho scritto essendo alle prime armi per imparare a utilizzare la struttura switch il codice è

codice:
int main(int argc, char *argv[]){
    int scelta;
    int eta;
    char nom[15];
    char cog[15];
    
    do{    
    menu();
    scanf ("%d",&scelta);
          switch (scelta){
                 case 1:
                      {printf ("UNO \n");
                      }
                 
                 case 2:
                      {printf ("DUE \n");
                      }
                 case 3:
                         {printf ("TRE \n");
                         }
                 default:
                         {printf("La selezione non e' valida \n");
                 }
                 }
                 }while (scelta != 4);
    system("PAUSE");	
    return 0;
}
void menu(void) {
     printf ("Cosa dedideri fare? \n");
     printf ("1) \n");
     printf ("2) \n");
     printf ("3)\n");
     printf ("4)Esci \n");
     }
il problema è che se scelgo per esempio 1 il programma esegue tutti i case a seguire quindi al posto di avere in output "UNO" ottrengo
UNO
DUE
TRE
la selezione non è valida

se digito 2 ottengo al posto di "DUE" ho:

DUE
TRE
la selezione non è valida

e così via...
Il compilatore che sto usando è Dev C 4.9.9.2, grazie a tutti