Voila, j'ai un petit probleme lors de l'execution de mon programme, quand je le lanceet qu'il atteint la partie "resolution" j'ai ce message qui apparait:
Voila la fonction incriminée:
Code : Sélectionner tout - Visualiser dans une fenêtre à part Segmentation fault (core dumped)
Petite explication rapide, pour chaque case du tableau ou il ya un 0, je cherche quel sont les candidats possible pour cette case, je le stocke sous forme de file, une fois les candidats trouvés, je les range du une pile d'essais dont la structure est la suivante;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 void resoudre(int grille[9][9]) { essai e; stack<essai> p; bool b=false; for(int i=0;i<9;i++) { for(int j=0;j<9;j++) { if(grille[i][j]==0) { e.pos.lig=i; e.pos.col=j; e.q=candidats(e.pos,grille); p.push(e); if( !(p.top().q.empty()) ) { grille[i][j]=p.top().q.front(); } else { while(p.top().q.size()<2) { p.pop(); } p.top().q.pop(); i=p.top().pos.lig; j=p.top().pos.col; grille[i][j]=p.top().q.front(); } } } } }
tant qu'on a un candidat possible pour la case, on le met dedans (la tete de la file), si on en a pas, on depile et on prend le candidat suivant, etc, etc ... la solution est trouvée quand toute les cases du tableau sont remplies...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 struct essai { position pos; queue<int> q; };
Le seul probleme, c'est que je vois pas il me dis que je sors du tableau...
quequ'un pourrait il me dire d'ou vient le probleme???![]()
Partager