Ripeto: piglia un libro for dummies e ricomincia da capo. Oppure iscriviti a un qualche corso on-line con video (sempre "for dummies").
Quello snippet di codice non farà
mai quello che vuoi perché non è così che funziona la programmazione
in generale. Il compilatore non c'entra niente, otterresti lo stesso risultato con praticamente tutti i linguaggi di programmazione.
La scanf è una
funzione definita così:
int scanf ( const char * format, ... );
Cioè si aspetta una descrizione di formattazione, poi una serie di variabili passate per riferimento. La scanf legge da standard input, e a seconda dello schema di formattazione mette quello che arriva nelle variabili. Noterai che la funzione è definita
int, quindi, al termine della sua esecuzione, ritornerà un valore intero, che corrisponde
al numero di elementi riempiti. In sostanza,
if (scanf("%c", &a))
se premi un
qualunque tasto sarà vera ed eseguirà il codice.
Quello che vuoi fare tu è una cosa del tipo
scanf("%c", &a);
if (a == 'a'){
...
}else if (a == 'b'){
...
}else if (a == 'c'){
...
}else {
printf("Scelta non valida!\n");
}