📢 Nuovo Corso Bootstrap Completo disponibile!

Esercizi structure in C

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