Probleme avec un tableau a 3 dimensions [Résolu]
tomalille
- Messages postés
-
52
- Date d'inscription
- jeudi 16 juin 2005
- Statut
- Membre
- Dernière intervention
- 5 juin 2007
-
tomalille
- Messages postés
-
52
- Date d'inscription
- jeudi 16 juin 2005
- Statut
- Membre
- Dernière intervention
- 5 juin 2007
-
bonjour,
j'utilise un tableau a 3 dimensions dans un procedure. Je ne comprend pas du tout les resultats de l'algo que j'ai implemente.
Je modifie les valeurs du tableau a un endroit (et je fais un cout pour verifier).
Apres cela, j'affiche le tableau final et ils ne correspond plus du tout a ce qui avait ete fait auparavant.
voici une partie de mon code;
Specif;
void cheminUtilisable(int panneI, int panneJ, float *distance,int *parcours, int *chemin);
Code;
void Graphe::cheminUtilisable(int panneI, int panneJ,float *distance,int *parcours, int *chemin)
{
int u, v;
int i;
bool panne;
if(existeArete(panneI,panneJ))
{
effacerArete(panneI,panneJ);
panne = true;
}
for(u=0;u<nbNoeuds;u++)
{
for(v=0;v<nbNoeuds;v++)
{
for(i=0;i<2;i++)
chemin[u*nbNoeuds+v*nbNoeuds+i] = -1;
}
}
for(u=0;u<nbNoeuds;u++)
{
cout << "***** U : "<< u << endl;
bellmanFord(u,&distance[0*nbNoeuds+0],&parcours[0*nbNoeuds+0]);
for(v=0;v<nbNoeuds;v++)
{
chemin[u*nbNoeuds+v*nbNoeuds+0] = parcours[v*2+0];
chemin[u*nbNoeuds+v*nbNoeuds+1] = parcours[v*2+1];
cout <<
"chemin[" << u << "," << v << ",0] =
"<<chemin[u*nbNoeuds+v*nbNoeuds+0]; /*pour verif: pas de
probleme*/
cout <<
" chemin[" << u << "," << v << ",1]= "
<<chemin[u*nbNoeuds+v*nbNoeuds+1]<< endl;
}
}
cout << endl << "*********RES FINAL**********" <<endl;
for(u=0;u<nbNoeuds;u++) /*impression du tableau final pour verif; ca ne correspond plus ???*/
{
cout << "***** U : "<< u << endl;
for(v=0;v<nbNoeuds;v++)
{
cout <<
"chemin[" << u << "," << v << ",0] =
"<<chemin[u*nbNoeuds+v*nbNoeuds+0];
cout <<
" chemin[" << u << "," << v << ",1]= "
<<chemin[u*nbNoeuds+v*nbNoeuds+1]<< endl;
}
}
cout << endl <<endl;
if(panne)
ajouterArete(panneI,panneJ);
}
Pouvez-vous m'orienter sur ce probleme? De plus, je ne suis pas certain de la syntaxe qui me permet d'acceder a mon tableau;
chemin[nbNoeuds][nbNoeuds][2];
chemin[u][v][0] = chemin[u*nbNoeuds+v*nbNoeuds+0];
Merci
Thomas