IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Problème de récursivité


Sujet :

C

  1. #21
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    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...

  2. #22
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    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.

  3. #23
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    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

    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];
    tout ce termine bien mais il n'arrive pas à sortir de la procédure Fusion, Le programme tourne alors indéfiniment.
    En fait, je dépasse la taille du tableau, parce que l'indice est à 9 et que l'indice max doit être de 7.

  4. #24
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    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.
    La division entière fait ce que tu voudrais... En division entière 5/2 = 2

    En fait, je dépasse la taille du tableau, parce que l'indice est à 9 et que l'indice max doit être de 7.
    Comment tu peux sortir de ta taille de tableau? Normalement ton appel récursif est donné par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       TriFusion(T,p,q);
       TriFusion(T,q+1,r);
    A quel moment est-ce que tu pourrais le dépasser...

    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

  5. #25
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    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

Discussions similaires

  1. Problème de récursivité
    Par amestoche dans le forum Langage
    Réponses: 2
    Dernier message: 20/04/2007, 15h41
  2. Problème Arnaud <> récursivité
    Par Kanter dans le forum Delphi
    Réponses: 13
    Dernier message: 20/02/2007, 16h54
  3. Problème de récursivité
    Par nmathon dans le forum Delphi
    Réponses: 5
    Dernier message: 12/01/2007, 16h40
  4. Problème de récursivité en Prolog
    Par poooky dans le forum Prolog
    Réponses: 5
    Dernier message: 04/01/2007, 17h35
  5. Problème de récursivité
    Par mehdi.berra dans le forum C
    Réponses: 8
    Dernier message: 14/12/2006, 17h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo