Labo 01 - recherche dichotomique
2 participants
Page 1 sur 1
Labo 01 - recherche dichotomique
Salut, j'ai fini mon labo et il fonctionne sans problèmes mais j'ai tout de même quelques difficultés à comprendre ce que fait réellement ma fonction. Tout tourne autour de ce que que fait strcmp: renvoyer 0, 1 ou -1. Mais la ou je ne comprend plus c'est quand on rappel la fonction en donnant des valeurs différentes pour la balise supérieur et pour l'inférieur.
Je ne comprend pas bien ce qui se passe au niveau des calculs ... ne sort il jamais de la liste pour trouver la balise du milieu?
Voici mon code
/!\ Je viens en fait de comprendre le principe en refaissant mes calculs, désolé!
Je ne comprend pas bien ce qui se passe au niveau des calculs ... ne sort il jamais de la liste pour trouver la balise du milieu?
Voici mon code
- Code:
int recherche(char * nom, struct Fiche_Etudiant * petud, int inf, int sup)
{
if (petud[0].nom==0 || sup < inf)
{
printf("\n L'%ctudiant n'est pas dans la liste!", 130);
return -1;
}
else
{
int mil= (sup+inf)/2;
int cmp = strcmp(nom, petud[mil].nom);
if (cmp ==0)
{
system("CLS");
printf("\n Nom Prenom Pourcentage \n");
printf("\n %-20s %-20s %2.1f %%", petud[mil].nom, petud[mil].prenom, petud[mil].pourcentage);
}
else if (cmp<0)
{
return recherche(nom, petud, inf, mil-1);
}
else
{
return recherche(nom, petud, mil+1, sup);
}
}
}
/!\ Je viens en fait de comprendre le principe en refaissant mes calculs, désolé!
Geroc- Messages : 29
Date d'inscription : 02/10/2008
Age : 37
Localisation : Liers
Labo 1 : recherche dichtomique
Juste pour te répondre pour pas te prendre un vide....
Merci d'avoir poster ton code
Merci d'avoir poster ton code
Tounou- Messages : 14
Date d'inscription : 07/10/2008
Age : 34
Localisation : Jupille
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|