Introduction
Dans ce laboratoire, vous allez découvrir le processus de recherche de l'élément le plus grand dans un tableau en utilisant la récursivité. Le programme C demandera à l'utilisateur d'entrer la taille du tableau, puis de saisir les éléments du tableau, suivit de l'affichage de l'élément le plus grand du tableau.
Configuration du fichier
Tout d'abord, créez un nouveau fichier nommé main.c dans le répertoire ~/project/. Ensuite, copiez le code ci-dessous et collez-le dans votre fichier, qui contient tout le code dont nous avons besoin pour terminer ce laboratoire.
#include<stdio.h>
#define MAX 100
int getMaxElement(int []); // prend un tableau d'entiers en paramètre
int size;
int main()
{
printf("\n\n\t\tLabEx - Meilleur endroit pour apprendre\n\n\n");
int arr[MAX], max, i;
printf("\n\nEntrez la taille du tableau : ");
scanf("%d", &size);
printf("\n\nEntrez %d éléments\n\n", size);
for(i = 0; i < size; i++)
{
scanf("%d", &arr[i]);
}
max = getMaxElement(arr); // passer le tableau complet en paramètre
printf("\n\nLe plus grand élément du tableau est %d\n\n", max);
printf("\n\n\t\t\tCoder c'est amusant!\n\n\n");
return 0;
}
int getMaxElement(int a[])
{
static int i = 0, max =- 9999; // static int max=a[0] est invalide
if(i < size) // jusqu'à la dernière élément
{
if(max < a[i])
max = a[i];
i++; // pour vérifier l'élément suivant dans l'itération suivante
getMaxElement(a); // appel récursif
}
return max;
}
Comprendre le code
Ce programme C est composé de deux fonctions : main() et getMaxElement().
2.1 Fonction main()
- Déclare un tableau nommé
arrpour stocker les éléments du tableau et initialise les variables :maxpour stocker l'élément le plus grand du tableau, etipour maintenir l'itération de la fonction. - Demande à l'utilisateur d'entrer la taille du tableau.
- Demande à l'utilisateur d'entrer les éléments du tableau.
- Appelle la fonction
getMaxElement()et passe le tableau nomméarren tant que paramètre. - Affiche l'élément le plus grand du tableau stocké dans la variable
max.
2.2 Fonction getMaxElement()
Il s'agit d'une fonction récursive qui renvoie l'élément le plus grand du tableau
- Déclare une valeur statique
ipour maintenir l'itération de la fonction et l'initialise à 0, et une valeur statiquemaxpour stocker l'élément le plus grand du tableau et l'initialise à une valeur très petite-9999. - Vérifie si la valeur de
iest inférieure à la taille du tableau. - Si la valeur de l'élément
i-ème du tableau est supérieure à la valeur actuelle demax, alors la valeur demaxest mise à jour avec l'élémenti-ème du tableau. - Affecte
ià l'élément suivant et appelle la fonctiongetMaxElement(), rendant cette fonction récursive.
Tester le programme
Pour compiler et exécuter le code, ouvrez un terminal dans le répertoire ~/project/ et suivez les étapes suivantes :
- Tapez
gcc main.cpour compiler le code. - Tapez
./a.outpour exécuter le programme. - Dans l'invite de commande, entrez la taille du tableau et appuyez sur
ENTRÉE. - Entrez les éléments du tableau et appuyez sur
ENTRÉEaprès chacun d'eux. - Le programme affichera l'élément le plus grand du tableau.
Code complet
#include<stdio.h>
#define MAX 100
int getMaxElement(int []); // prend un tableau d'entiers en paramètre
int size;
int main()
{
printf("\n\n\t\tLabEx - Meilleur endroit pour apprendre\n\n\n");
int arr[MAX], max, i;
printf("\n\nEntrez la taille du tableau : ");
scanf("%d", &size);
printf("\n\nEntrez %d éléments\n\n", size);
for(i = 0; i < size; i++)
{
scanf("%d", &arr[i]);
}
max = getMaxElement(arr); // passer le tableau complet en paramètre
printf("\n\nLe plus grand élément du tableau est %d\n\n", max);
printf("\n\n\t\t\tCoder c'est amusant!\n\n\n");
return 0;
}
int getMaxElement(int a[])
{
static int i = 0, max =- 9999; // static int max=a[0] est invalide
if(i < size) // jusqu'à la dernière élément
{
if(max < a[i])
max = a[i];
i++; // pour vérifier l'élément suivant dans l'itération suivante
getMaxElement(a); // appel récursif
}
return max;
}
Résumé
Félicitations! Vous avez réussi à terminer ce laboratoire sur la façon de trouver l'élément le plus grand dans un tableau en utilisant la récursivité. Vous devriez maintenant bien comprendre comment utiliser la récursivité pour trouver l'élément le plus grand d'un tableau. Bravo!



