Ah, be', giusto, in effetti non avevo provato a mettere 0... be', è normale, il messaggio viene visualizzato, ma il codice dopo di esso viene comunque eseguito. Per risolvere il problema, puoi o mettere un break subito dopo la printf del messaggio di errore (in questo modo si esce subito dallo switch), o mettere il codice che effettua la divisione in un else associato all'if del messaggio di errore, in modo che venga eseguito l'uno o l'altro blocco di codice.