Aide C++
darKxyde
-
swed -
swed -
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.
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.