📢 Nuovo Corso Bootstrap Completo disponibile!

Esercizi enum in C

Ecco degli esercizi semplici con soluzione per praticare le basi enum in C.

Esercizio 1

Definire un enum per i giorni della settimana e stamparli a schermo:
#include <stdio.h>
enum GiorniSettimana {
Lunedi,
Martedi,
Mercoledi,
Giovedi,
Venerdi,
Sabato,
Domenica
};
int main() {
enum GiorniSettimana oggi = Martedi;
printf("Oggi è %d\n", oggi);
return 0;
}

Esercizio 2

Utilizzare un enum come parametro di una funzione:
#include <stdio.h>
enum Mesi {
Gennaio,
Febbraio,
Marzo,
Aprile,
Maggio,
Giugno,
Luglio,
Agosto,
Settembre,
Ottobre,
Novembre,
Dicembre
};
void stampaMese(enum Mesi mese) {
switch (mese) {
case Gennaio:
printf("Gennaio\n");
break;
case Febbraio:
printf("Febbraio\n");
break;
case Marzo:
printf("Marzo\n");
break;
case Aprile:
printf("Aprile\n");
break;
case Maggio:
printf("Maggio\n");
break;
case Giugno:
printf("Giugno\n");
break;
case Luglio:
printf("Luglio\n");
break;
case Agosto:
printf("Agosto\n");
break;
case Settembre:
printf("Settembre\n");
break;
case Ottobre:
printf("Ottobre\n");
break;
case Novembre:
printf("Novembre\n");
break;
case Dicembre:
printf("Dicembre\n");
break;
default:
printf("Mese non valido\n");
}
}
int main() {
enum Mesi meseCorrente = Settembre;
stampaMese(meseCorrente);
return 0;
}

Esercizio 3

Definire un enum con valori personalizzati:
#include <stdio.h>
enum Colori {
Rosso = 1,
Verde = 5,
Blu = 10
};
int main() {
enum Colori colorePreferito = Verde;
printf("Il mio colore preferito ha valore %d\n", colorePreferito);
return 0;
}

Esercizio 4

Utilizzare un enum in un'istruzione switch:
#include <stdio.h>
enum Stato {
Acceso,
Spento,
InStandBy
};
void stampaStato(enum Stato stato) {
switch (stato) {
case Acceso:
printf("Il dispositivo è acceso.\n");
break;
case Spento:
printf("Il dispositivo è spento.\n");
break;
case InStandBy:
printf("Il dispositivo è in standby.\n");
break;
default:
printf("Stato non valido.\n");
}
}
int main() {
enum Stato statoDispositivo = Acceso;
stampaStato(statoDispositivo);
return 0;
}

Esercizio 5

Utilizzare un enum per indicare il risultato di un'operazione:
#include <stdio.h>
enum Risultato {
Successo,
Errore
};
enum Risultato somma(int a, int b) {
int risultato = a + b;
if (risultato > 100) {
return Successo;
} else {
return Errore;
}
}
int main() {
int numero1 = 50;
int numero2 = 70;
enum Risultato risultatoSomma = somma(numero1, numero2);
if (risultatoSomma == Successo) {
printf("La somma dei numeri è maggiore di 100.\n");
} else {
printf("La somma dei numeri è minore o uguale a 100.\n");
}
return 0;
}

Esercizio 6

Utilizzare un enum per indicare le operazioni matematiche:
#include <stdio.h>
enum Operazioni {
Somma,
Sottrazione,
Moltiplicazione,
Divisione
};
int calcola(int a, int b, enum Operazioni operazione) {
switch (operazione) {
case Somma:
return a + b;
case Sottrazione:
return a - b;
case Moltiplicazione:
return a * b;
case Divisione:
return a / b;
default:
printf("Operazione non valida.\n");
return 0;
}
}
int main() {
int numero1 = 10;
int numero2 = 5;
enum Operazioni operazione = Somma;
int risultato = calcola(numero1, numero2, operazione);
printf("Il risultato dell'operazione è %d\n", risultato);
return 0;
}

Esercizio 7

Utilizzare un enum per definire le costanti:
#include <stdio.h>
enum Costanti {
PI = 3.14159,
GRAVITA = 9.81,
VELOCITA_LUCE = 299792458
};
int main() {
float raggio = 5.0;
float area = PI * raggio * raggio;
printf("L'area del cerchio è %f\n", area);
return 0;
}

Esercizio 8

Utilizzare un enum per definire il tipo di veicolo:
#include <stdio.h>
enum TipoVeicolo {
Auto,
Moto,
Bicicletta
};
void stampaTipoVeicolo(enum TipoVeicolo tipoVeicolo) {
switch (tipoVeicolo) {
case Auto:
printf("Il veicolo è un'auto.\n");
break;
case Moto:
printf("Il veicolo è una moto.\n");
break;
case Bicicletta:
printf("Il veicolo è una bicicletta.\n");
break;
default:
printf("Tipo di veicolo non valido.\n");
}
}
int main() {
enum TipoVeicolo veicolo1 = Auto;
enum TipoVeicolo veicolo2 = Moto;
enum TipoVeicolo veicolo3 = Bicicletta;
stampaTipoVeicolo(veicolo1);
stampaTipoVeicolo(veicolo2);
stampaTipoVeicolo(veicolo3);
return 0;
}

Esercizio 9

Utilizzare un enum per definire le opzioni di un menu:
#include <stdio.h>
enum OpzioniMenu {
Visualizza,
Aggiungi,
Modifica,
Elimina,
Esci
};
void eseguiOpzione(enum OpzioniMenu opzione) {
switch (opzione) {
case Visualizza:
printf("Hai selezionato Visualizza.\n");
break;
case Aggiungi:
printf("Hai selezionato Aggiungi.\n");
break;
case Modifica:
printf("Hai selezionato Modifica.\n");
break;
case Elimina:
printf("Hai selezionato Elimina.\n");
break;
case Esci:
printf("Hai selezionato Esci.\n");
break;
default:
printf("Opzione non valida.\n");
}
}
int main() {
enum OpzioniMenu opzioneScelta = Aggiungi;
eseguiOpzione(opzioneScelta);
return 0;
}

Esercizio 10

Utilizzare un enum per definire il livello di accesso:
#include <stdio.h>
enum LivelliAccesso {
Utente,
Amministratore,
Sviluppatore
};
void eseguiAzione(enum LivelliAccesso livello) {
switch (livello) {
case Utente:
printf("Benvenuto Utente.\n");
break;
case Amministratore:
printf("Benvenuto Amministratore.\n");
break;
case Sviluppatore:
printf("Benvenuto Sviluppatore.\n");
break;
default:
printf("Livello di accesso non valido.\n");
}
}
int main() {
enum LivelliAccesso livelloUtente = Amministratore;
eseguiAzione(livelloUtente);
return 0;
}