Info - Gestion
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -28%
Brandt LVE127J – Lave-vaisselle encastrable 12 ...
Voir le deal
279.99 €

Soucis labo 01

2 participants

Aller en bas

Soucis labo 01 Empty Soucis labo 01

Message  yan014 Dim 1 Fév - 19:53

Bonjour tout le monde,

j'espere que vous passer un bon weekend :p

Donc voila, j'ai un petit soucis avec ma recherche dichotomique Sad

Soit je rentre un nombre de nom pair et il rouve tout sauf deux éléments ( les extrémités du milieu )
Ex: j'ai 6 nom ---> Il les trouve tous sauf celui a la position 4 et 5 ?!

Soit je rentre un nombre de nom impair et il trouve tout sauf 1 éléments ( celui du milieu )
Ex: j'ai 5 nom ---> Il les trouve tous sauf celui a la position 3

Je dois dire que je sèche la xD

Voici mon code:
Code:
int rech_dico(struct fiche e[],char nom_rech[30],int nb)
{
   int inf = 0,sup = nb,mil,pos;
   
   while(inf<sup)
   {
      mil = (inf+sup)/2;
      
      if((strcmp(nom_rech,e[mil].nom)) == -1)
      {
         sup = mil;
      }
      else
      {
         inf = mil+1;
      }

   }

   if((strcmp(nom_rech,e[mil].nom)) == 0)
   {
      pos = inf;
   }
   else
   {
      pos = -1;
   }

   return pos;

}

yan014

Messages : 165
Date d'inscription : 12/10/2008
Age : 34
Localisation : Sur le net =D

http://www.lesclicks.com/

Revenir en haut Aller en bas

Soucis labo 01 Empty Re: Soucis labo 01

Message  dellC Dim 1 Fév - 20:42

Alors, quelques trucs :

Code:
      if((strcmp(nom_rech,e[mil].nom)) == -1)
      {
        sup = mil;
      }
      else
      {
        inf = mil+1;
      }
Et si c'est égal à zéro ?

Code:
  if((strcmp(nom_rech,e[mil].nom)) == 0)
  {
      pos = inf;
  }
Pourquoi c'est pas dans la boucle ?

Voilà, y a plein d'autres incohérence dans ton code, mais je te laisses d'abord le soin de régler ces quelques problèmes ...
dellC
dellC

Messages : 120
Date d'inscription : 07/11/2008
Age : 35
Localisation : Herve

Revenir en haut Aller en bas

Soucis labo 01 Empty Re: Soucis labo 01

Message  yan014 Dim 1 Fév - 21:39

dellC a écrit:
Et si c'est égal à zéro ?
Waip j'ai oublié de comparer si il est egal dés le départ.

dellC a écrit:
Code:
  if((strcmp(nom_rech,e[mil].nom)) == 0)
  {
      pos = inf;
  }
Parce que elle n'a rien a y faire :p

J'ai corriger 2 petites erreurs et tout marche nickel Smile

Bonne soirée

yan014

Messages : 165
Date d'inscription : 12/10/2008
Age : 34
Localisation : Sur le net =D

http://www.lesclicks.com/

Revenir en haut Aller en bas

Soucis labo 01 Empty Re: Soucis labo 01

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser