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 avec un heapsort avec pointeur


Sujet :

C

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Problème avec un heapsort avec pointeur
    Bonjour à tous ,
    j'ai un problème avec le tri heap sort. Les fonctions encodages et affichages fonctionnent. Mais les fonctions paterner et tri, font crashé. si vous sauriez m'aidé.
    Mon but est de faire le heapsort avec des pointeurs.

    message erreur:
    Nom d’événement de problème: APPCRASH
    Nom de l’application: ---------------
    Version de l’application: 0.0.0.0
    Horodatage de l’application: 52f78a79
    Nom du module par défaut: ---------.exe
    Version du module par défaut: 0.0.0.0
    Horodateur du module par défaut: 52f78a79
    Code de l’exception: c0000005
    Décalage de l’exception: 00001546
    Version du système: 6.1.7601.2.1.0.256.48
    Identificateur de paramètres régionaux: 1036
    Information supplémentaire n°*1: 0a9e
    Information supplémentaire n°*2: 0a9e372d3b4ad19135b953a78882e789
    Information supplémentaire n°*3: 0a9e
    Information supplémentaire n°*4: 0a9e372d3b4ad19135b953a78882e789


    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    #include <stdio.h>
    #include <stdlib.h>
     
    #define LIM 50
     
    int encod(int *);
    void affichage(int *,int );
     
    void paterner ( int **, int  );
    void triepi(int * ,int );
     
    int main()
    {
       int vec[LIM],j,n;
     
       do
       {
     
           do
           {
     
     
            printf ("\n|***********************************************************************|\n");
            printf ("|   saisir 1 pour encoder:                                              |\n");
            printf ("|   saisir 2 pour afficher                                              |\n");
            printf ("|   saisir 3 pour trier                                                 |\n");
            printf ("|   saisir 4 pour arreter le programme                                  |\n");
            printf ("|***********************************************************************|\n");
                fflush(stdin);
                scanf("%d",&n);
     
           }while (n<1&&n>=4);
     
           switch(n)
           {
           case 1:
              j=encod(&vec[0]);
            break;
           case 2:
     
               affichage(&vec[0], j);
            break;
           case 3:
     
               triepi(&vec[0],j);
     
            break;
           case 4:
            break;
           }
     
       }while (n!=4);
     
        return 0;
    }
     
     
     
     
    int encod(int *pvec)
    {
        int j,i;
     
        do
        {
            printf("saisir le nbombre de case \n");
            fflush (stdin);
            scanf("%d",&j);
        }while(j<1&&j>=50) ;
     
     
        for (i=0;i<j;i++)
        {
            printf("saisir un nombre dans case %d \n",i);
            scanf("%3d",& *pvec);
            pvec++;
            printf("\n");
        }
     
     
        return j;
    }
     
     
    void affichage(int *pvec,int j)
    {
        int i;
        i=0;
        for (i=0;i<j;i++)
        {
            printf(" %d",*pvec);
     
            pvec++;
        }
    }
     
     
     
    void paterner (int *pvec, int j )
    {
        int ipere,ifils,i,temp;
     
     
        i=j/2;
        ipere=j/2;
        ifils=ipere*2;
        temp=*pvec;
     
        while(ifils<=j)
        {
            if(ifils <j && *(pvec+ifils+1) >*(pvec+ifils))
            {
                ifils=ifils+1;
            }
     
            if(**(pvec+ifils)>temp)
            {
                *(pvec+ipere)=*(pvec+ifils);
                ipere=ifils;
                ifils=ipere*2;
            }
            else
            {
                ifils=j;
            }
        }
        *(pvec+ipere)=temp;
     
    }
     
     
    void triepi(int *pvec,int j)
    {
        int i;
        i=j/2;
     
        while(i>=0)
        {
            paterner(&pvec,j);
            i--;
        }
        i=j;
        while(i>=1)
        {
            *pvec=*(pvec+i);
            paterner(&pvec,i-1);
            i--;
        }
    }
    Dernière modification par Invité ; 09/02/2014 à 15h04. Motif: message erreur

Discussions similaires

  1. [WD16] Problème d'un btach avec 1 projet avec plusieurs biblio
    Par law56100 dans le forum WinDev
    Réponses: 3
    Dernier message: 11/01/2013, 21h11
  2. Problème avec les tableaux de pointeurs
    Par TheDoci dans le forum C
    Réponses: 2
    Dernier message: 07/01/2007, 13h04
  3. Réponses: 4
    Dernier message: 15/10/2006, 18h05
  4. Problème à l'exécution avec wxWindows (compilé avec BCC55)
    Par ShootDX dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 14/11/2003, 18h04
  5. problème de capture son avec Directshow
    Par albator83 dans le forum DirectX
    Réponses: 2
    Dernier message: 06/11/2003, 17h18

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