Menu
CoddyTech

Récapitulatif : Tableaux dynamiques

Fait partie de la section Logique & Flux du Journey C de Coddy. Leçon 37 sur 63.

challenge icon

Défi

Facile

Écrivez un programme C qui crée un tableau dynamique à partir des entrées de l’utilisateur, traite les données et montre une bonne gestion de la mémoire. Votre programme doit :

  1. Lire un entier n auprès de l’utilisateur, qui représente le nombre d’éléments à stocker
  2. Utiliser malloc() avec sizeof() pour allouer dynamiquement de la mémoire pour un tableau de n entiers
  3. Vérifier si l’allocation de mémoire a réussi : en cas d’échec, afficher Memory allocation failed! et terminer le programme
  4. Si l’allocation réussit, afficher Array of size [n] created successfully!
  5. Lire n valeurs entières auprès de l’utilisateur et les stocker dans le tableau alloué
  6. Calculer et afficher la somme de tous les éléments au format : Sum: [value]
  7. Trouver et afficher la valeur minimale au format : Minimum: [value]
  8. Compter le nombre d’éléments supérieurs à la moyenne et afficher le résultat au format : Elements above average: [count]
  9. Afficher la mémoire totale utilisée, en octets, au format : Memory used: [bytes] bytes
  10. Utiliser free() pour libérer la mémoire
  11. Afficher Memory successfully freed! pour confirmer que le nettoyage a bien été effectué

N’oubliez pas d’inclure l’en-tête <stdlib.h> pour utiliser malloc() et free(). Ce défi teste votre compréhension complète de la gestion dynamique de la mémoire, de l’allocation à l’utilisation, jusqu’à la libération correcte de la mémoire.

Par exemple, si l’entrée est :

5
12 8 15 3 20

Votre sortie devrait être :

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

Ce défi complet montre tout le cycle de vie de la gestion dynamique de la mémoire, tout en effectuant des opérations de traitement pertinentes sur les données du tableau alloué.

Essayez vous-même

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

int main() {
    // Lire le nombre d’éléments
    int n;
    scanf("%d", &n);
    
    // TODO: Écrire votre code ci-dessous
    // 1. Allouer de la mémoire pour n entiers à l’aide de malloc()
    // 2. Vérifier si l’allocation a réussi
    // 3. Lire n entiers dans le tableau
    // 4. Calculer la somme, trouver le minimum et compter les éléments supérieurs à la moyenne
    // 5. Afficher les résultats et libérer la mémoire
    
    return 0;
}

Toutes les leçons de Logique & Flux

Entraînez-vous par vous-même : Compilateur C en ligne