Menu
CoddyTech

Riepilogo: array dinamico

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

challenge icon

Sfida

Facile

Scrivi un programma in C che crei un array dinamico in base all’input dell’utente, elabori i dati e dimostri una corretta gestione della memoria. Il programma deve:

  1. Leggere dall’utente un intero n che rappresenta il numero di elementi da memorizzare
  2. Usare malloc() con sizeof() per allocare dinamicamente la memoria per un array di n interi
  3. Controllare se l’allocazione della memoria è riuscita: in caso contrario, stampare Memory allocation failed! e terminare il programma
  4. Se l’allocazione riesce, stampare Array of size [n] created successfully!
  5. Leggere dall’utente n valori interi e memorizzarli nell’array allocato
  6. Calcolare e stampare la somma di tutti gli elementi nel formato: Sum: [value]
  7. Trovare e stampare il valore minimo nel formato: Minimum: [value]
  8. Contare quanti elementi sono maggiori della media e stampare il risultato nel formato: Elements above average: [count]
  9. Stampare la memoria totale utilizzata in byte nel formato: Memory used: [bytes] bytes
  10. Usare free() per deallocare la memoria
  11. Stampare Memory successfully freed! per confermare la corretta pulizia

Ricorda di includere l’header <stdlib.h> per usare malloc() e free(). Questa sfida mette alla prova la tua comprensione completa della gestione dinamica della memoria, dall’allocazione all’utilizzo fino alla corretta pulizia.

Per esempio, se l’input è:

5
12 8 15 3 20

L’output dovrebbe essere:

Array of size 5 created successfully!
Sum: 58
Minimum: 3
Elements above average: 3
Memory used: 20 bytes
Memory successfully freed!

Questa sfida completa dimostra il ciclo di vita completo della gestione dinamica della memoria, eseguendo al contempo operazioni significative di elaborazione dei dati sull’array allocato.

Provalo tu

#include <stdio.h>
#include <stdlib.h>

int main() {
    // Leggi il numero di elementi
    int n;
    scanf("%d", &n);
    
    // TODO: Scrivi il tuo codice qui sotto
    // 1. Alloca memoria per n interi usando malloc()
    // 2. Verifica se l'allocazione è riuscita
    // 3. Leggi n interi nell'array
    // 4. Calcola la somma, trova il minimo e conta gli elementi superiori alla media
    // 5. Stampa i risultati e libera la memoria
    
    return 0;
}

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore C online