Menu
Coddy logo textTech

Inizializzare le struct

Fa parte della sezione Logica e flusso del percorso C di Coddy. Lezione 42 di 63.

Anche se puoi creare variabili di tipo struct e poi assegnare valori ai singoli membri, C offre un modo più pratico per impostare i valori iniziali. Puoi inizializzare una variabile di tipo struct al momento della dichiarazione usando una lista di inizializzazione racchiusa tra parentesi graffe.

La sintassi per l'inizializzazione di una struct è:

struct StructureName variableName = {value1, value2, ...};

Usando il nostro esempio di struttura Point, puoi dichiararla e inizializzarla in un'unica riga chiara:

struct Point p1 = {10, 20};

Questo crea una variabile Point denominata p1 con x impostato su 10 e y impostato su 20. I valori nell’elenco di inizializzazione vengono assegnati ai membri della struct nell’ordine in cui sono stati dichiarati nella definizione della struct.

Questo approccio di inizializzazione non è solo più conciso rispetto alle assegnazioni separate, ma garantisce anche che la tua struct inizi con valori significativi anziché con dati casuali privi di senso. È particolarmente utile quando conosci i valori iniziali in fase di compilazione e vuoi creare in modo efficiente variabili struct pronte all'uso.

challenge icon

Sfida

Facile

Crea un programma C che mostri l’inizializzazione di struct usando liste di inizializzazione. Il tuo programma deve:

  1. Definire una struct denominata Employee con i seguenti membri:
    • Un intero id per memorizzare l’ID del dipendente
    • Un array di caratteri department di dimensione 15 per memorizzare il nome del dipartimento
    • Un intero yearsOfService per memorizzare gli anni di servizio
    • Un float salary per memorizzare lo stipendio del dipendente
  2. Creare tre variabili Employee usando liste di inizializzazione con i seguenti dati:
    • emp1: ID 101, dipartimento "Engineering", 5 anni di servizio, stipendio 75000.50
    • emp2: ID 102, dipartimento "Marketing", 3 anni di servizio, stipendio 65000.25
    • emp3: ID 103, dipartimento "Sales", 8 anni di servizio, stipendio 80000.75
  3. Stampare le informazioni di ciascun dipendente in questo formato esatto:
    • Employee 1:
    • ID: [id]
    • Department: [department]
    • Years of Service: [yearsOfService]
    • Salary: [salary]
    • Employee 2:
    • ID: [id]
    • Department: [department]
    • Years of Service: [yearsOfService]
    • Salary: [salary]
    • Employee 3:
    • ID: [id]
    • Department: [department]
    • Years of Service: [yearsOfService]
    • Salary: [salary]
  4. Calcolare e stampare lo stipendio totale di tutti e tre i dipendenti nel formato: Total Salary: [total]
  5. Calcolare e stampare la media degli anni di servizio nel formato: Average Years of Service: [average]

Questa sfida verifica la tua comprensione dell’inizializzazione delle struct usando liste di inizializzazione, in cui dichiari e inizializzi le variabili struct su una sola riga. I valori nella lista di inizializzazione devono essere forniti nello stesso ordine in cui i membri sono stati dichiarati nella definizione della struct.

L’output previsto deve essere:

Employee 1:
ID: 101
Department: Engineering
Years of Service: 5
Salary: 75000.50
Employee 2:
ID: 102
Department: Marketing
Years of Service: 3
Salary: 65000.25
Employee 3:
ID: 103
Department: Sales
Years of Service: 8
Salary: 80000.75
Total Salary: 220001.50
Average Years of Service: 5.33

Provalo tu

#include <stdio.h>

// TODO: Definisci qui la struct Employee

int main() {
    // TODO: Crea tre variabili Employee usando liste di inizializzazione
    
    // TODO: Stampa le informazioni per ogni dipendente
    
    // TODO: Calcola e stampa lo stipendio totale e la media degli anni di servizio
    
    return 0;
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore C online