Si, controlli l'input.
codice:
int main(){
	int i = 0;
	while(i!=4){
		printf("Inserisci un intero da 1 a 3, 4 per uscire\n");
		if(!scanf("%d", &i)) {
		    printf("Hai inserito una lettera!\nRiprova!\n");
		    fflush(stdin);
		}else
            switch(i){
                case 1:
                    printf("Caso 1\n");
                    break;
                case 2:
                    printf("Caso 2\n");
                    break;
                case 3:
                    printf("Caso 3\n");
                    break;
                case 4:
                    break;
                default:
                    printf("Operazione non valida!\n");
                    break;
            }
	}
	return 0;
}
scanf è una funzione che restituisce 1 se il valore inserito è coerete con il tipo di dato nel quale dovrà risiedere, zero altrimenti.