Aide C++

Fermé
darKxyde - 4 déc. 2009 à 10:14
 swed - 4 déc. 2009 à 10:58
Bonjour,
J'ai un problème avec une boucle tant que, je n'arrive pas a "rentrer" dedans alors que:
mon max=5, mid=2, min=0
et stock[mid].code=4 et lecode=8

voici le code en question:
(j'ai mis en gras le debut de la boucle)


bool RechercheDichotomique(int lecode)
{
int min;
int max;
int mid;


max=(sizeof(stock)/sizeof(Article))-1;
min=0;
mid=(max-min)/2;

printf("****mid %d - max %d - min %d\n",mid,max,min);
printf("****code %d - lecode %d\n",stock[mid].code,lecode);
while((stock[mid].code!=lecode)&&(max<=min))
{
printf("============");
if((stock[mid].code>lecode))
{
max=mid-1;
}
else
{
min=max+1;
}
mid=(max+min)/2;
printf("----mid%d - max%d - min%d\n",mid,max,min);
}
printf("mid%d - max%d - min%d\n",mid,max,min);
if((stock[mid].code!=lecode))
{
mid=-1;
}
return mid;

}

Quand je lance cette fonction aucun des printf de la boucle while n'est pas affiché.
Merci pour une future réponse.

1 réponse

Bonjour,

Tu nous informe que min=0 et max=5 ;
Et dans ton while, tu as la condition "max<=min".

Je t'informe que 5 est supérieur à 0, et donc cette condition n'est pas respectée, et donc tu n'entres pas dans ta boucle while...

Cordialement,
Marc.
0