🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Esercizi structure in C

Codegrind Team•Jul 22 2023

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

Esercizio 1

Definizione di una struttura "Persona" e stampa dei dati:
#include <stdio.h>

struct Persona {
    char nome[20];
    int eta;
};

int main() {
    struct Persona persona;

    printf("Inserisci il nome: ");
    scanf("%s", persona.nome);

    printf("Inserisci l'età: ");
    scanf("%d", &persona.eta);

    printf("Dati della persona:\n");
    printf("Nome: %s\n", persona.nome);
    printf("Età: %d\n", persona.eta);

    return 0;
}

Esercizio 2

Calcolo dell'età media di un gruppo di persone:
#include <stdio.h>

struct Persona {
    char nome[20];
    int eta;
};

int main() {
    struct Persona persone[5];
    int sommaEta = 0;

    for (int i = 0; i < 5; i++) {
        printf("Inserisci il nome della persona %d: ", i + 1);
        scanf("%s", persone[i].nome);

        printf("Inserisci l'età della persona %d: ", i + 1);
        scanf("%d", &persone[i].eta);

        sommaEta += persone[i].eta;
    }

    float mediaEta = (float)sommaEta / 5;

    printf("L'età media del gruppo è: %.2f\n", mediaEta);

    return 0;
}

Esercizio 3

Definizione di una struttura "Punto" e calcolo della distanza tra due punti:
#include <stdio.h>
#include <math.h>

struct Punto {
    int x;
    int y;
};

float calcolaDistanza(struct Punto p1, struct Punto p2) {
    int dx = p2.x - p1.x;
    int dy = p2.y - p1.y;
    return sqrt(dx * dx + dy * dy);
}

int main() {
    struct Punto punto1, punto2;

    printf("Inserisci le coordinate del primo punto:\n");
    printf("x: ");
    scanf("%d", &punto1.x);
    printf("y: ");
    scanf("%d", &punto1.y);

    printf("Inserisci le coordinate del secondo punto:\n");
    printf("x: ");
    scanf("%d", &punto2.x);
    printf("y: ");
    scanf("%d", &punto2.y);

    float distanza = calcolaDistanza(punto1, punto2);

    printf("La distanza tra i due punti è: %.2f\n", distanza);

    return 0;
}

Esercizio 4

Definizione di una struttura "Libro" e stampa dei dati:
#include <stdio.h>

struct Libro {
    char titolo[50];
    char autore[50];
    int annoPubblicazione;
};

int main() {
    struct Libro libro;

    printf("Inserisci il titolo del libro: ");
    scanf("%s", libro.titolo);

    printf("Inserisci l'autore del libro: ");
    scanf("%s", libro.autore);

    printf("Inserisci l'anno di pubblicazione del libro: ");
    scanf("%d", &libro.annoPubblicazione);

    printf("Dati del libro:\n");
    printf("Titolo: %s\n", libro.titolo);
    printf("Autore: %s\n", libro.autore);
    printf("Anno di pubblicazione: %d\n", libro.annoPubblicazione);

    return 0;
}

Esercizio 5

Calcolo del totale di una fattura con più elementi usando una struttura "Prodotto":
#include <stdio.h>

struct Prodotto {
    char nome[50];
    float prezzo;
    int quantita;
};

float calcolaTotale(struct Prodotto prodotti[], int numProdotti) {
    float totale = 0;

    for (int i = 0; i < numProdotti; i++) {
        totale += prodotti[i].prezzo * prodotti[i].quantita;
    }

    return totale;
}

int main() {
    int numProdotti;

    printf("Inserisci il numero di prodotti: ");
    scanf("%d", &numProdotti);

    struct Prodotto prodotti[numProdotti];

    for (int i = 0; i < numProdotti; i++) {
        printf("Inserisci il nome del prodotto %d: ", i + 1);
        scanf("%s", prodotti[i].nome);

        printf("Inserisci il prezzo del prodotto %d: ", i + 1);
        scanf("%f", &prodotti[i].prezzo);

        printf("Inserisci la quantità del prodotto %d: ", i + 1);
        scanf("%d", &prodotti[i].quantita);
    }

    float totale = calcolaTotale(prodotti, numProdotti);

    printf("Il totale della fattura è: %.2f\n", totale);

    return 0;
}

Esercizio 6

Definizione di una struttura "Studente" con voto e calcolo della media:
#include <stdio.h>

struct Studente {
    char nome[50];
    int eta;
    float voto;
};

float calcolaMedia(struct Studente studenti[], int numStudenti) {
    float sommaVoti = 0;

    for (int i = 0; i < numStudenti; i++) {
        sommaVoti += studenti[i].voto;
    }

    return sommaVoti / numStudenti;
}

int main() {
    int numStudenti;

    printf("Inserisci il numero di studenti: ");
    scanf("%d", &numStudenti);

    struct Studente studenti[numStudenti];

    for (int i = 0; i < numStudenti; i++) {
        printf("Inserisci il nome dello studente %d: ", i + 1);
        scanf("%s", studenti[i].nome);

        printf("Inserisci l'età dello studente %d: ", i + 1);
        scanf("%d", &studenti[i].eta);

        printf("Inserisci il voto dello studente %d: ", i + 1);
        scanf("%f", &studenti[i].voto);
    }

    float media = calcolaMedia(studenti, numStudenti);

    printf("La media dei voti degli studenti è: %.2f\n", media);

    return 0;
}

Esercizio 7

Definizione di una struttura "Automobile" e stampa dei dati:
#include <stdio.h>

struct Automobile {
    char marca[50];
    char modello[50];
    int anno;
};

int main() {
    struct Automobile automobile;

    printf("Inserisci la marca dell'automobile: ");
    scanf("%s", automobile.marca);

    printf("Inserisci il modello dell'automobile: ");
    scanf("%s", automobile.modello);

    printf("Inserisci l'anno di fabbricazione dell'automobile: ");
    scanf("%d", &automobile.anno);

    printf("Dati dell'automobile:\n");
    printf("Marca: %s\n", automobile.marca);
    printf("Modello: %s\n", automobile.modello);
    printf("Anno di fabbricazione: %d\n", automobile.anno);

    return 0;
}

Esercizio 8

Definizione di una struttura "Punto" e calcolo del quadrante:
#include <stdio.h>

struct Punto {
    int x;
    int y;
};

int calcolaQuadrante(struct Punto punto) {
    if (punto.x > 0 && punto.y > 0) {
        return 1;
    } else if (punto.x < 0 && punto.y > 0) {
        return 2;
    } else if (punto.x < 0 && punto.y < 0) {
        return 3;
    } else if (punto.x > 0 && punto.y < 0) {
        return 4;
    } else {
        return 0;
    }
}

int main() {
    struct Punto punto;

    printf("Inserisci le coordinate del punto:\n");
    printf("x: ");
    scanf("%d", &punto.x);
    printf("y: ");
    scanf("%d", &punto.y);

    int quadrante = calcolaQuadrante(punto);

    if (quadrante == 0) {
        printf("Il punto si trova sull'origine del sistema di coordinate.\n");
    } else {
        printf("Il punto si trova nel quadrante %d.\n", quadrante);
    }

    return 0;
}

Esercizio 9

Definizione di una struttura "Cerchio" e calcolo dell'area:
#include <stdio.h>
#define PI 3.14159

struct Cerchio {
    float raggio;
};

float calcolaArea(struct Cerchio cerchio) {
    return PI * cerchio.raggio * cerchio.raggio;
}

int main() {
    struct Cerchio cerchio;

    printf("Inserisci il raggio del cerchio: ");
    scanf("%f", &cerchio.raggio);

    float area = calcolaArea(cerchio);

    printf("L'area del cerchio è: %.2f\n", area);

    return 0;
}

Esercizio 10

Definizione di una struttura "Vettore" e somma degli elementi:
#include <stdio.h>

struct Vettore {
    int elementi[5];
};

int calcolaSomma(struct Vettore vettore) {
    int somma = 0;

    for (int i = 0; i < 5; i++) {
        somma += vettore.elementi[i];
    }

    return somma;
}

int main() {
    struct Vettore vettore;

    printf("Inserisci gli elementi del vettore:\n");

    for (int i = 0; i < 5; i++) {
        printf("Elemento %d: ", i + 1);
        scanf("%d", &vettore.elementi[i]);
    }

    int somma = calcolaSomma(vettore);

    printf("La somma degli elementi del vettore è: %d\n", somma);

    return 0;
}