Menu
Coddy logo textTech

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 C che crei un array dinamico in base all'input dell'utente, elabori i dati e dimostri una corretta gestione della memoria. Il tuo programma dovrebbe:

  1. Leggere dall'utente un intero n che rappresenta il numero di elementi da memorizzare
  2. Usare malloc() con sizeof() per allocare dinamicamente memoria per un array di n interi
  3. Verificare 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 deallocazione

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

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: 2
Memory used: 20 bytes
Memory successfully freed!

Questa sfida completa dimostra l'intero ciclo di vita 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. Controlla se l'allocazione è riuscita
    // 3. Leggi n interi nell'array
    // 4. Calcola la somma, trova il minimo, conta gli elementi sopra la media
    // 5. Stampa i risultati e libera la memoria
    
    return 0;
}

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore C online