|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : septembre 2012 Messages : 11 ![]() |
Bonjour!!
L'intitulé de mon programme est assez compliqué. Pour chaque entier < 9999, il doit effectuer l’algorithme suivant: le décomposer pour avoir ses chiffres (ex 4198 devient 4,1,9,8) ordonner par ordre décroissant ses chiffres (4,1,9,8 devient 9,8,4,1) -------------------croissant----------------(4,1,9,8 devient 1,4,8,9) faire la soustraction des deux (9841-1489) Une propriété non démontrée dit qu'au bout de 7 transformations au maximum on tombe sur 6174, peut importe le nombre. Si on rentre un entier a moins de 4 chiffres, il est complété par des 0: 1 devient 0001. Mon programme doit compter pour tous les entiers compris entre 0 et 9999 le nombre de transformations et les mettre dans un tableau. (ex: 1 nombre a 0 transformations, xxx ont besoin de 1 transformation, yyy de 2 etc) Mon programme ne m'affiche rien: Code :
|
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Inscription : novembre 2004 Messages : 2 026 ![]() |
Merci de mettre ton code enter les balises idoines (bouton #) et d'indenter correctement.
__________________
VDS "The C++ Standard Library" (Josuttis) -> 30 € |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : septembre 2012 Messages : 11 ![]() |
l'indenter correctement?
|
|
|
00
|
|
|
#4 |
![]() ![]() Cyrille Network programmer Inscription : juin 2010 Messages : 1 555 ![]() |
Bonjour,
L'indentation est déjà meilleure maintenant que j'ai ajouté les balises CODE. Quelle erreur rencontres-tu ? Boucle infinie ? |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : septembre 2012 Messages : 11 ![]() |
le programme s'ouvre mais n'affiche rien (pas de probleme a la compilation)
|
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() ![]() Inscription : novembre 2004 Messages : 2 026 ![]() |
Commence déjà par utiliser des vecteurs, plutôt que des tableaux.
Ça simplifiera ton code.
__________________
VDS "The C++ Standard Library" (Josuttis) -> 30 € |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : septembre 2012 Messages : 11 ![]() |
Je debute et en fait l'exercice demande des tableaux.
Les vecteurs on n'a pas encore vu |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() Inscription : novembre 2004 Messages : 2 026 ![]() |
Appelle affiche() juste après avoir rempli le tableau, et dis-nous si ça affiche quelque chose.
__________________
VDS "The C++ Standard Library" (Josuttis) -> 30 € |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : septembre 2012 Messages : 11 ![]() |
oui ca defile sans s'arreter
|
|
|
00
|
|
|
#10 | |
|
Membre éprouvé
![]() Étudiant Inscription : juin 2012 Messages : 266 ![]() |
Citation:
actuellement tu as une boucle infinie, la condition est à comprendre comme ça: 6174 => différent de 0 donc vaut true !6174 => false nb = !6174 => nb = (int)false => nb = 0 Tu ne rentres donc jamais dans cette boucle while, mais tu modifies nb et donc ta boucle for est infinie. edit: enfin dans tous les cas, il faut modifier une copie de nb, et pas nb directement, sinon tu ne sortira jamais de ta boucle for. |
|
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : septembre 2012 Messages : 11 ![]() |
oui le point d'exclamation c'teait une faute de frappe.
Par contre pour le nb ou il fallait faire une copie, j'avoue que j'ai pas assez réfléchi... Merci beaucoup!!!!!! (là ça marche) |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com