Struct in C

Struct in C

Struct in C – In questa lezione faremo un esempio di utilizzo di strutture in C molto semplice, infatti nella scorsa lezione, strutture in C, avevamo solo dato qualche definizione.

Creare una semplice struct alunno che contiene il nome, il cognome e il voto. Dopo inserire da 1 a 20 alunni al massimo e permettere di effettuare una ricerca per cognome dell’alunno. Se ci sono più alunni con lo stesso cognome visualizzarli entrambi.

Procedimento esempio d’uso struct in C

Quindi, definiamo una struttura alunno con all’interno il campo nome e cognome di tipo char e voto di tipo int.

Per il momento non utilizzeremo le funzioni ma svilupperemo il programma all’interno del main.

Facciamo un controllo sul numero degli alunni, con il ciclo do while, in modo da evitare di inserire un numero non valido.

Dopo con un ciclo for inseriamo i dati degli alunni. Poi chiediamo quale cognome dobbiamo cercare, lo memorizziamo nella variabile cerca e utilizzando la funzione strcmp controlliamo se qualche dato nella nostra struttura contiene quel cognome e se troviamo i dati visualizziamo i risultati. Se a fine ciclo la variabile trovato è rimasta a zero, allora vuol dire che non abbiamo trovato nessun cognome.

N.B. Sarebbe opportuno inserire un identificato di ciascun alunno, in modo da identificarlo univocamente. Nelle prossime lezioni vedremo come fare.

Ecco dunque il listato completo di questo semplicissimo esempio della struct in C.

#include <stdio.h>
#include <string.h>
#define MAX 20

typedef struct {
	char cognome[30];
	char nome[20];
	int voto;
}alunno;

int main() {
  	alunno a[MAX];
  	int n,i,j,trovato;
  	char cerca[20];
  
  	do{
  	printf("Inserisci il numero di alunni:");
	scanf("%d", &n);	 
	} while (n<1 || n>MAX);
	
	for(i=0; i<n; i++){
		printf("Inserisci il cognome dell'alunno:");
		scanf("%s", a[i].cognome);
		printf("Inserisci il nome dell'alunno:");
		scanf("%s", a[i].nome);
		printf("Inserisci il voto:");
		scanf("%d", &a[i].voto);
	}
	
	printf("\nInserisci il cognome dell'alunno da cercare: ");
	scanf("%s", cerca);
	
	trovato=0;
	for(j=0;j<n;j++){
		if(strcmp(a[j].cognome, cerca)==0) {
			printf("\nAlunno trovato in posizione %d.\n%s\t%d\n",j+1,a[j].nome, a[j].voto);
			trovato=1;
		}	
	}
	
	if (!trovato) 
		printf("\nAlunno non trovato.\n");

  return 0;
}

Chiaramente questo è un semplicissimo esempio di strutture in C, nella prossima lezione vedremo altri esempi.

Alcuni link utili

Media per riga e per colonna

Come fare la somma degli elementi della diagonale principale di una matrice

Sommare elementi cornice esterna

Somma di due matrici

Come sommare i numeri di una matrice

Matrice trasposta

Prodotto tra matrici

Ricerca elementi in una matrice

Inserire dati in una matrice

Tavola pitagorica in C

Array multidimensionali

Programma sui triangoli in C

Media dei numeri in un array

Array con numeri random

Quick sort in C

Selection sort in C

Merge sort in C

Insertion Sort in C


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *