Menu
Coddy logo textTech

Récapitulatif : Pointeurs comme arguments de fonction

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

challenge icon

Défi

Facile

Écrivez un programme en C qui implémente une fonction pour trouver à la fois les valeurs minimale et maximale dans un tableau en utilisant des arguments de type pointeur. Votre programme doit :

  1. Créez une fonction nommée findMinMax qui prend quatre paramètres :
    • Un tableau d'entiers
    • La taille du tableau
    • Un pointeur vers un entier pour stocker la valeur minimale
    • Un pointeur vers un entier pour stocker la valeur maximale
  2. À l'intérieur de la fonction findMinMax, parcourez le tableau pour trouver les valeurs minimale et maximale
  3. Utilisez l'opérateur de déréférencement pour stocker la valeur minimale à l'adresse pointée par le pointeur min
  4. Utilisez l'opérateur de déréférencement pour stocker la valeur maximale à l'adresse pointée par le pointeur max
  5. Dans la fonction main, lisez un entier n représentant le nombre d'éléments du tableau
  6. Lisez n valeurs entières et stockez-les dans un tableau
  7. Déclarez deux variables entières minValue et maxValue pour stocker les résultats
  8. Appelez la fonction findMinMax, en passant le tableau, sa taille, et les adresses de minValue et maxValue
  9. Affichez les résultats au format : Minimum: [value] et Maximum: [value]

Par exemple, si l'entrée est :

5
12 7 23 4 18

Votre sortie devrait être :

Minimum: 4
Maximum: 23

Ce défi démontre la technique puissante consistant à utiliser plusieurs arguments de type pointeur pour renvoyer plusieurs valeurs à partir d'un seul appel de fonction, permettant à la fonction de modifier des variables dans la portée de la fonction appelante.

Essayez vous-même

#include <stdio.h>

// TODO : Écrivez votre fonction findMinMax ici

int main() {
    int n;
    scanf("%d", &n);
    
    int arr[n];
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    int minValue, maxValue;
    
    // TODO : Appelez la fonction findMinMax ici
    
    printf("Minimum: %d\n", minValue);
    printf("Maximum: %d\n", maxValue);
    
    return 0;
}

Toutes les leçons de Logic & Flow