Menu
Coddy logo textTech

Récap : Tableau de structs

Fait partie de la section Logic & Flow du Journey C de Coddy — leçon 62 sur 63.

challenge icon

Défi

Facile

Créez un programme C qui gère un système d'inventaire de produits à l'aide d'un tableau de structures. Votre programme doit :

  1. Définir une struct nommée Product avec les membres suivants :
    • Un tableau de caractères name de taille 30
    • Un float price
    • Un entier stock
  2. Écrire une fonction nommée findMostExpensive qui :
    • Prend un tableau de struct Product et un entier size en paramètres
    • Retourne un entier représentant l'index du produit ayant le prix le plus élevé
    • Utilise une boucle pour parcourir tous les produits et comparer leurs prix
    • Retourne l'index du premier produit trouvé avec le prix maximum
  3. Écrire une fonction nommée calculateTotalValue qui :
    • Prend un tableau de struct Product et un entier size en paramètres
    • Retourne un float représentant la valeur totale de l'inventaire
    • Calcule la valeur totale en additionnant (prix × stock) pour chaque produit
  4. Écrire une fonction nommée findLowStock qui :
    • Prend un tableau de struct Product, un entier size, et un entier threshold en paramètres
    • Retourne un entier représentant le nombre de produits dont le stock est inférieur au seuil
    • Utilise une boucle pour compter les produits dont le stock est inférieur à la valeur du seuil
  5. Dans la fonction main :
    • Créer un tableau de 3 struct Product nommé inventory
    • Lire les entrées pour chaque produit dans cet ordre : nom, prix, stock
    • Remplir le tableau avec les données saisies
    • Afficher les informations de chaque produit dans ce format exact : Product [index]: [name] - Price: [price], Stock: [stock]
    • Appeler la fonction findMostExpensive et afficher le résultat dans ce format exact : Most expensive product: [name]
    • Appeler la fonction calculateTotalValue et afficher le résultat avec exactement 2 décimales dans ce format exact : Total inventory value: [total_value]
    • Lire un entier représentant le seuil de stock bas
    • Appeler la fonction findLowStock avec le seuil et afficher le résultat dans ce format exact : Products with low stock: [count]
    • Vérifier si le produit le plus cher a un stock supérieur à 10 :
      • Si oui : afficher Most expensive product is well stocked
      • Si non : afficher Most expensive product needs restocking

Ce défi teste votre capacité à travailler avec des tableaux de structures, à implémenter des fonctions qui traitent des tableaux de structures et à effectuer divers calculs et comparaisons sur des données structurées. Vous pratiquerez l'indexation de tableaux avec des structures, la conception de fonctions pour le traitement de données et la combinaison de plusieurs opérations pour analyser les informations d'un inventaire.

Essayez vous-même

#include <stdio.h>
#include <string.h>

// TODO: Définir la structure Product ici

// TODO: Implémenter la fonction findMostExpensive ici

// TODO: Implémenter la fonction calculateTotalValue ici

// TODO: Implémenter la fonction findLowStock ici

int main() {
    // Créer un tableau de 3 produits
    struct Product inventory[3];
    
    // Lire les entrées pour chaque produit
    for (int i = 0; i < 3; i++) {
        scanf("%s", inventory[i].name);
        scanf("%f", &inventory[i].price);
        scanf("%d", &inventory[i].stock);
    }
    
    // TODO: Afficher les informations de chaque produit
    
    // TODO: Trouver et afficher le produit le plus cher
    
    // TODO: Calculer et afficher la valeur totale de l'inventaire
    
    // Lire le seuil de stock bas
    int threshold;
    scanf("%d", &threshold);
    
    // TODO: Trouver et afficher les produits avec un stock bas
    
    // TODO: Vérifier si le produit le plus cher est bien stocké
    
    return 0;
}

Toutes les leçons de Logic & Flow