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