Verifie que tu ne sors pas de ton tableau... est-ce que p et r sont toujours entre 0 et la taille de T->t et tmp?
Comment as-tu déclaré tmp?
Utilises un debugger pour voir où se trouve l'erreur...
Verifie que tu ne sors pas de ton tableau... est-ce que p et r sont toujours entre 0 et la taille de T->t et tmp?
Comment as-tu déclaré tmp?
Utilises un debugger pour voir où se trouve l'erreur...
En fait, comment fait on en c pour avoir la valeur inférieur d'un nombre.
Je m'explique en fait un moment il fait (3+2)/2 ce qui est égale à 2.5 é lui il le convertir en 3 alors que je voudrais qu'il mette 2.
Non, en fait le problème ne vient pas de là.
C'est lorsque q = 9, p = 9, r= 10.
Il passe dans la procédure Fusion.
Lors de l'affection
tout ce termine bien mais il n'arrive pas à sortir de la procédure Fusion, Le programme tourne alors indéfiniment.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 for(i=p;i<=r-1;i++) T->t[i] = temp[i];
En fait, je dépasse la taille du tableau, parce que l'indice est à 9 et que l'indice max doit être de 7.
La division entière fait ce que tu voudrais... En division entière 5/2 = 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part Je m'explique en fait un moment il fait (3+2)/2 ce qui est égale à 2.5 é lui il le convertir en 3 alors que je voudrais qu'il mette 2.
Comment tu peux sortir de ta taille de tableau? Normalement ton appel récursif est donné par:En fait, je dépasse la taille du tableau, parce que l'indice est à 9 et que l'indice max doit être de 7.
A quel moment est-ce que tu pourrais le dépasser...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 TriFusion(T,p,q); TriFusion(T,q+1,r);
Autre problème que tu as, pourquoi ton programme boucle aux valeurs p=9, r=10?
Vérifies, ce n'est pas normal... Normalement, pour ces valeurs ta fonction ne devrais plus faire d'appels récursifs
je regarderais sa en détails chez moi parce que là avec gdb je galère un peu.
Je pense que 'y arriverais mieux avec une interface graphique.
Je te tiens au courant de mes états d'avancements.
En tout cas merci pour toutes ces réponses
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager