Soucis labo 01
2 participants
Page 1 sur 1
Soucis labo 01
Bonjour tout le monde,
j'espere que vous passer un bon weekend :p
Donc voila, j'ai un petit soucis avec ma recherche dichotomique
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:
j'espere que vous passer un bon weekend :p
Donc voila, j'ai un petit soucis avec ma recherche dichotomique
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;
}
Re: Soucis labo 01
Alors, quelques trucs :
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 ...
- Code:
if((strcmp(nom_rech,e[mil].nom)) == -1)
{
sup = mil;
}
else
{
inf = mil+1;
}
- Code:
if((strcmp(nom_rech,e[mil].nom)) == 0)
{
pos = inf;
}
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- Messages : 120
Date d'inscription : 07/11/2008
Age : 35
Localisation : Herve
Re: Soucis labo 01
Waip j'ai oublié de comparer si il est egal dés le départ.dellC a écrit:
Et si c'est égal à zéro ?
Parce que elle n'a rien a y faire :pdellC a écrit:
- Code:
if((strcmp(nom_rech,e[mil].nom)) == 0)
{
pos = inf;
}
J'ai corriger 2 petites erreurs et tout marche nickel
Bonne soirée
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|