Comment récupérer une valeur d'une fonction ? [Résolu/Fermé]

Signaler
Messages postés
68
Date d'inscription
dimanche 6 septembre 2009
Statut
Membre
Dernière intervention
19 juillet 2017
-
Messages postés
68
Date d'inscription
dimanche 6 septembre 2009
Statut
Membre
Dernière intervention
19 juillet 2017
-
Bonjour,
donc j'ai un petit problème, j'essaie de faire l'équivalent d'une liste doublement chaînée sans utiliser des pointeurs mais uniquement des tableaux multiple.

Donc ce que j'ai fais, j'ai crée deux tableaux, un pour les indices, un pour les valeurs comme suit et une variable qui fait guise de point de départ :

int tabVAL[8] = {1,4,15,31,23,6,11,3};
int tabIND[8]={7,5,6,0,2,3,1,4};
int depart =2;



J'ai fait cette fonction pour parcourir ma table :

int suivant(int VAL[], int IND[],int start){
int i ;
printf("Valeur actuel : %d",VAL[start]);
i = IND[start];
start=i;
printf("\nProchain indice : %d\n",start);
return start;

}


maintenant mon problème c'est que j'aimerais qu'en appelant la fonction suivant, ce dernier parte directement vers la prochaine valeur, par exemple j'aimerais qu'après écrire ces deux lignes :

suivant(tabVAL, tabIND, depart);
suivant(tabVAL, tabIND, depart);


que je reçoive comme résultat :

Valeur actuel : 15
Prochain indice : 6
Valeur actuel : 11
Prochain indice : 1

mais je me retrouve toujours avec une répétition des deux premières lignes. Ma question est alors simple, comment faire pour que la variable "start" change automatiquement de valeur après l'appel de la fonction "suivant" ? En gros j'aimerais récupérer la valeur de depart depuis la fonction "suivant" et le donner à "start" à chaque appel de la fonction !

Toute aide est la bienvenue, encore plus si il y a un gros problème dans mon code.

PS : c'est un travail loin d'être terminé, donc j'aimerais surtout une réponse à la question actuelle plutôt que des remarques sur le travail en général ( je sais très bien que c'est encore loin de ressembler à une liste doublement chaînée, je dois encore faire la fonction précédent, et ajouter des fonctions pour allouer et libéré de la mémoire, mais pour l'instant j'y vais un problème à la fois ! :) )

1 réponse

Messages postés
68
Date d'inscription
dimanche 6 septembre 2009
Statut
Membre
Dernière intervention
19 juillet 2017

C'est bon j'ai trouvé !
J'ai juste eu besoin de faire :

depart=suivant(tabVAL, tabIND, depart);
depart=suivant(tabVAL, tabIND, depart);


Et ensuite la valeur était sauvegarder comme un con j'avais oublié que je devais retourner la valeur quelque part pour que ça soit récupéré ! x)