🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Esercizi enum in C

Codegrind TeamJul 22 2023

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;
}