Bonjour,
} while ( reserve>0 || c == 0 || c == 1 );
C'est subtil mais c'est incorrect : ta boucle tournera si reserve est supérieur à zéro OU si c est égal à zéro OU s'il est égal à 1.
Ça veut dire que si un de tes chiffres est différent de 0 ou 1 mais que ce n'est pas le plus faible (celui des unités à droite), alors ta boucle continuera quand même à tourner alors qu'elle aurait dû s'arrêter, parce que reserve n'est pas encore nul. A contrario, même si ton nombre est propre, ta boucle continuera à tourner après la fin parce qu'étant nul, ton modulo 10 dans c sera égal 0, ce qui est une condition suffisante pour perpétuer la boucle, également.
Essaie ceci : while (reserve>0 && (c==0 || c==1));
Partager