Une boucle infinie : j'ignore pourquoi
Bonjour,
Je suis en train de m'arracher les cheveux (et c'est dommage quand même :mouarf: ) sur ce petit programme :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| #include <iostream>
#include <math.h>
using namespace std;
int main()
{
unsigned long int nb;
int tabPosition[9][8] ;
int position = 0;
int chiffre,k;
cout << "Entrer un nombre entier de 9 chiffre maxi = ";
cin >> nb;
while (nb != 0) {
for (int chiffre = 0; chiffre <= 9; chiffre++) {
for (int k = 0; k <= 8; k++) {
tabPosition[chiffre][k] = -1;
}
}
while (nb != 0) {
chiffre = nb % 10;
k = 0;
while (tabPosition[chiffre][k] != -1 && k < 9) {
k += 1;
}
tabPosition[chiffre][k] = position;
nb = nb / 10;
position += 1;
}
for (int chiffre = 0; chiffre <= 9; chiffre ++) {
if (tabPosition[chiffre][0] != -1) {
cout << chiffre << " : ";
k = 0;
while (tabPosition[chiffre][k] != -1 && k < 10) {
cout << tabPosition[chiffre][k] << " ";
k += 1;
}
}
}
// reconstitution du nbre :
for (int chiffre = 0; chiffre <= 9; chiffre ++) {
k = 0;
while (tabPosition[chiffre][k] != -1) {
nb += chiffre * pow(10,tabPosition[chiffre][k]);
k += 1;
}
}
cout << nb;
cout << endl << "Entrer un nbre entier de 9 chiffres maximum = ";
cin >> nb;
}
return 0;
} |
Il s'agit d'un exercice d'algo.
Il boucle dès le départ, c'est à dire que le programme me demande bien de saisir un nombre et... c'est tout...le voilà parti je ne sais où. Alors que c'est des boucles for :mur:
Une âme charitable pour m'indiquer ce que j'ai mal fait ?
D'avance merci :D