Bonjour,
Je suis confrontée à un problème assez étrange : j'ai une boucle for, à l'intérieur, se trouve un simple affichage, et pourtant... Elle ne s'incrémente jamais. A priori, c'est pas un problème d'options de compilation (j'ai essayé la batterie d'options au début, puis plus rien et le résultat est le même.
Une autre chose : la méthode next_season() semble effacer la valeur de v. Mais je ne comprends pas pourquoi. Et j'ai googlé, sans rien trouver.
Avez-vous une idée de ce qui se passe ? Je vous joins les bouts de code incriminés.
Code main.cpp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 int main(int, char **) { Population P; P.display(-1); for(int v = 1 ; v < 10 ; v++) { P.display(v); P.next_season(); std::cout << "v = " << v << std::endl; } return 0; }
Code population.cpp:display : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 void Population::display(int v) { if(v == -1) { std::cout << "Total number of rabbits:\t" << total << std::endl; std::cout << "Males:\t" << partition[3] + partition[4] + partition[5] << "\tFemales:\t" << partition[0] + partition[1] + partition[2] << std::endl; } else { for(int i = 0 ; i < v ; i++) { std::cout << "Age " << i << ": " << partition[i+6] << std::endl; } } }
Code population.cpp:next_season : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 void Population::next_season() { /* First: aging */ /* After month 185, all rabbits are dead */ for(int k = 185 ; k > 5 ; k--) { partition[k+1] = partition[k]; } partition[6] = 0; }
P.S. Patapé, je suis pas très expérimentée.
Partager