Le forum des 7
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-29%
Le deal à ne pas rater :
PC portable – MEDION 15,6″ FHD Intel i7 – 16 Go / 512Go (CDAV : ...
499.99 € 699.99 €
Voir le deal

Hanoi grace a une matrice

4 participants

Aller en bas

Hanoi grace a une matrice Empty Hanoi grace a une matrice

Message  Le délégué Ven 27 Nov - 12:23

Code:
#include <stdio.h>                                                 
#include <stdlib.h>
#include <time.h>                                             

int N, cpt=0;                                                             
                                                                       
 int **creermatrice(int l, int c)                                   
 { int i,**p;                                                       
  p = (int **)malloc(sizeof(int *) * l);                           
  for (i=0 ; i<l ; i++)                                           
      { p[i] = (int *)malloc(sizeof(int) * c); }                   
    return(p);                                                     
 }                                                                 
                                                                       
 int **liremat(int l)                                               
 { int **p;                                                         
  int i, j;                                                       
  p=creermatrice(l,3);                                             
                                                                       
  for (i=0 ; i<l ; i++)                                           
    {  for (j=0 ; j<3 ; j++)                                     
            {  if (j) p[i][j] = 0;                                 
              else  p[i][j] = i+1;                               
            }                                                     
    }                                                             
 return p;                                                         
 }                                                                 
                                                                       
                                                                       
 void ecriremat(int **p, int l)                                     
 { int i, j;
  printf("\n\n" );                                                       
  for (i=0 ; i<l ; i++)                                           
      {  for (j=0 ; j<3 ; j++)                                   
              {  if (p[i][j] == 0) printf(".\t" );
                else printf("%d\t", p[i][j]);  }                         
        printf("\n" );                                               
      }
    printf("-------------------" );                                                                 
 }                                                                 
                                                                       

void traiter(int **p, int d, int a, int n)
    {
      int i=0, v;
      while ( (i<n) && (p[i][d] == 0) )
              i++;
             
        if (i<n) { v = p[i][d];
                  p[i][d] = 0;
                  }
          i=n-1;

          while ( (i>=0)    && (p[i][a] != 0) )
                  i--;
          if (i>=0)
            p[i][a] = v;

          cpt++;
          ecriremat(p, N);
      }
                                                                       
                                                                       
    void hanoi(int **p, int n, int un, int deux, int trois)       
    {                                                     
          if (n == 0 ) {;}                                         
              else                                                 
              { hanoi(p, n-1, un, trois, deux);                   
                   
                      traiter(p, un, trois, N);
                                                                   
                hanoi(p, n-1, deux, un, trois);               
              }                                                   
      }                                                                                                                                 
                                                                     
                                                                       
    int main()                                                     
    { 
   int **p;
                                                                           
        printf("Nombre d anneaux ? : " );                           
        scanf("%d", &N);                                           
     
        p = liremat(N);                                           
        printf("\n\n" );                                           
        ecriremat(p, N);                                           
                                                                     
        hanoi(p, N, 0, 1, 2);                                     
                                                               
        printf("\n\nRealise en %d operations\n\n", cpt+1);                                           
                                                                   
   return 0;                                                 
}

Le délégué
Admin
Admin

Messages : 42
Date d'inscription : 24/09/2009
Age : 35
Localisation : Combs/Rennes

https://filiereoc.forumactif.org

Revenir en haut Aller en bas

Hanoi grace a une matrice Empty Re: Hanoi grace a une matrice

Message  le sous-délégué Ven 27 Nov - 16:24

Ceci est fort gentil de ta part chère délégué je vais regarder ce code de ce pas....

le sous-délégué
Admin
Admin

Messages : 60
Date d'inscription : 24/09/2009
Age : 36

Revenir en haut Aller en bas

Hanoi grace a une matrice Empty Re: Hanoi grace a une matrice

Message  Ewasx Ven 27 Nov - 19:11

merci pr le code,

sinon ton exo1d ne marche pas, boucle infini ... enfin pour mon soft, ça boucle a l'infini ....
Ewasx
Ewasx
Humain
Humain

Messages : 85
Date d'inscription : 26/09/2009
Age : 35
Localisation : Vitry-Sur-Seine

Revenir en haut Aller en bas

Hanoi grace a une matrice Empty Re: Hanoi grace a une matrice

Message  Eric Sam 28 Nov - 13:18

merci THI-BAU-L-T
j'ai posté le d de l'exo 1 pour ce qui veulent
toi je te pique ton hanoï dejà j'ai lu le code et je commence à avoir mal à la tête

Eric
Nain
Nain

Messages : 44
Date d'inscription : 07/10/2009
Age : 35
Localisation : 94-91-971 mec (un peu partout quoi)

Revenir en haut Aller en bas

Hanoi grace a une matrice Empty Re: Hanoi grace a une matrice

Message  Le délégué Lun 30 Nov - 0:40

Il y a des bouts de codes a pas reprendre dans celui ci!

Exemple :

Code:
 int **creermatrice(int l, int c)                                   
 { int i,**p;                                                       
  p = (int **)malloc(sizeof(int *) * l);                           
  for (i=0 ; i<l ; i++)                                           
      { p[i] = (int *)malloc(sizeof(int) * c); }                   
    return(p);                                                     
 }

Ne connaissant pas le maloc, j'ai recup d'internet! (je previens juste)
Sinon la 2eme soluce est a 100% moi. Donc sure. Je vous laiss mijoter un peu santa

Le délégué
Admin
Admin

Messages : 42
Date d'inscription : 24/09/2009
Age : 35
Localisation : Combs/Rennes

https://filiereoc.forumactif.org

Revenir en haut Aller en bas

Hanoi grace a une matrice Empty Re: Hanoi grace a une matrice

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum