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 :

probleme execution


Sujet :

C

  1. #1
    Invité(e)
    Invité(e)
    Par défaut probleme execution
    bonjour
    j'ai fait ce programme en language c
    c'est pour cree un arbre
    le probleme c ke la procedure affichage s'execute pas
    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
    #include<stdio.h>
    #include<stdlib.h>
    typedef struct noeud *arbre;
    typedef struct noeud {
                  char val;
                  arbre g,d;
                  };
    arbre racine;char c; 
    void construire(arbre *a,char elt)
    {
    if(a==NULL)
    {
    *a=(noeud*)malloc(sizeof(noeud));                                              
    (*(*a)).val=elt;                                        
    (*a)->g=NULL;                                       
    (*a)->d=NULL;                                        
    construire(&(*a)->g,elt);
    construire(&(*a)->d,elt);
    }
    }
    void afficher(arbre a)
    {
    if(a!=NULL)
    {
     printf("%s",(*a).val);
     afficher((*a).g);                                                         
     afficher((*a).d);
     }
    }
    main()
    {
    racine=NULL;
    printf("entrer la valeur ");
    scanf("%s",&c);
    while(c!='#')
    {
      construire(&racine,c);
      printf("entrer la valeur ");
      scanf("%s",&c);
    }
    printf("ali");getchar();
    afficher(racine);
    system("pause");
    }
    ps: j'utilise le devcpp
    Dernière modification par Invité(e) ; 07/05/2006 à 21h17.

  2. #2
    Membre émérite Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Par défaut
    Ce code ne compile pas !!!

  3. #3
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Déjà ce serait bien que tu postes du code qui compile.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    typedef struct noeud *arbre;
    typedef struct noeud {
                  char val;
                  arbre g,d;
                  };
    Déjà, ce genre de déclaration ne passe pas la compile.

    Evite les variables globales inutiles, j'ai un peu refait le main :
    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
    // le prototype de main est int main(void) si on
    // n'utilise pas les arguments de la ligne de commande
    int main(void)
    {
     // ; Pourquoi ce ;
      racine=NULL;
      printf("entrer la valeur ");
     
      // Potentiellement une erreur, c est un caractère, 
      // il vaut mieux prévoir beaucoup plus
      // scanf est déconseillé, utilise fgets
      scanf("%s",&c);
      while(c!='#')
      {
        construire(&racine,c);
        printf("entrer la valeur ");
        scanf("%s",&c); 
      }
      printf("ali");getchar(); 
      // pourquoi ce getchar() ? 
      // sans doute à cause du scanf
      afficher(racine);
      system("pause");
     
      // main est une fonction qui doit renvoyer une valeur au système
      return 0;
    }
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  4. #4
    Invité(e)
    Invité(e)
    Par défaut nn
    je l'ai modifier mais c'est pareil
    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
    #include<stdio.h>
    #include<stdlib.h>
    typedef struct noeud *arbre;
    typedef struct noeud {
                  char val;
                  arbre g,d;
                  };
    arbre racine;char c; 
    void construire(arbre *a,char elt)
    {
    if(a==NULL)
    {
    *a=(noeud*)malloc(sizeof(noeud));                                              
    (*(*a)).val=elt;                                        
    (*a)->g=NULL;                                       
    (*a)->d=NULL;                                        
    construire(&(*a)->g,elt);
    construire(&(*a)->d,elt);
    }
    }
    void afficher(arbre a)
    {
    if(a!=NULL)
    {
     printf("%s",(*a).val);
     afficher((*a).g);                                                         
     afficher((*a).d);
     }
    }
    int main(void)
    {
    racine=NULL;
    printf("entrer la valeur ");
    scanf("%s",&c);
    while(c!='#')
    {
      construire(&racine,c);
      printf("entrer la valeur ");getchar();
      scanf("%s",&c);
    }
    printf("ali");
    afficher(racine);
    system("pause");
    return 0;
    }

  5. #5
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Bien sur que c'est pareil !!!
    Tes fonctions sont fausses, je te suggère de mettre des printf un peu partout dans tes fonctions pour suivre le déroulement des opérations, tu vas avoir des surprises !! (il faut que tu apprennes à debugger tout seul c'est pour ça que je te propose les printf).
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  6. #6
    Invité(e)
    Invité(e)
    Par défaut fgets
    j'ai pas l'habitude d'utiliser la fonction fgets
    comment je doit l'utilser pour remplacer ma fonction : scanf("%s",&c);

  7. #7
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Tu peux faire ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // on a char c[128];
    fgets(c, sizeof(c), stdin);;
    while(*c!='#')
    {
      construire(&racine,*c);
      printf("entrer la valeur ");
      fgets(c, sizeof(c), stdin);
    }
    L'utilisation de fgets est peu plus complexe que celà, mais j'ai réduit pour ton problème.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  8. #8
    Invité(e)
    Invité(e)
    Par défaut toujour pas resolu
    j'ai toujours le meme probleme....

  9. #9
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    As -tu rajouter les printf dans ta fonction construire(arbre *a,char elt) comme je te l'avais suggéré ?
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  10. #10
    Invité(e)
    Invité(e)
    Par défaut oui
    j'ai essayer printf dans construire et c pas affiché
    donc mon probleme c dans cet procedure

  11. #11
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Il ne s'est pas affiche car ton test (a==NULL) est faux.
    Tu passes l' adresse de la racine de l'arbre, elle n'est pas null, par contre c'est l'arbre qui est NULL.
    Donc modifie celà, mais il y aura encore des problèmes....
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  12. #12
    Membre émérite Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Par défaut
    Pour commencer, corriges la déclaration de ta structure noeud !!!

  13. #13
    Invité(e)
    Invité(e)
    Par défaut c
    ce programme je l'ai pri d'internet
    donc il est faut?
    voila le programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    program arbresbinaires;type     pointeur = ^noeud;    noeud = record               valeur : integer;               gauche : pointeur;               droit : pointeur;            end;var racine : pointeur;    n : integer;procedure construire(var arbre : pointeur; elt : integer);   begin      if (arbre=nil) then         begin            new(arbre);            arbre^.valeur:=elt;            arbre^.gauche:=nil;            arbre^.droit:=nil;         end      else		               if elt<arbre^.valeur then              construire(arbre^.gauche, elt)           else if elt>arbre^.valeur then              construire(arbre^.droit, elt);end;procedure afficher(arbre : pointeur);   begin     if not(arbre=nil) then       begin          afficher(arbre^.gauche);          writeln(arbre^.valeur);          afficher(arbre^.droit);       end;   end;    begin           racine:=nil; (* Pascal n'initialise pas les pointeurs a nil *)      write('entrez un nombre:');      readln(n);      while (n>=0) do          begin              construire(racine, n);              write('entrez un nombre : ');               readln(n);           end;      afficher(racine);end.

  14. #14
    Invité(e)
    Invité(e)
    Par défaut le lien
    voila ladresse ou j'ai pri le programma
    http://www2.univ-reunion.fr/~fred/En...rs/node66.html

  15. #15
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    C'est ud Pascal, il y a des différences entre le Pascal et le C !!
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  16. #16
    Invité(e)
    Invité(e)
    Par défaut g fait ca
    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
    #include<stdio.h>
    #include<stdlib.h>
    typedef struct noeud *arbre;
    struct noeud {
                  char val;
                  arbre g,d;
                  };
    arbre racine;char c; 
    void construire(arbre *a,char elt)
    {printf("fgfgf\n");
    if(a==NULL)
    {
    *a=(noeud*)malloc(sizeof(noeud));printf("xgdxg");                                              
    (*(*a)).val=elt;   printf("con\n");                                     
    (*a)->g=NULL;                                       
    (*a)->d=NULL;                                        
    construire(&(*a)->g,elt);
    construire(&(*a)->d,elt);
    }
    }
    void afficher(arbre a)
    {
    if(a!=NULL)
    {
     printf("%s",(*a).val);
     afficher((*a).g);                                                       
     afficher((*a).d);printf("oué");
     }
    }
    int main(void)
    {
    racine=NULL;
    printf("entrer la valeur ");
    scanf("%s",&c);
    while(c!='n')
    {
      construire(&racine,c);
      printf("entrer la valeur ");
      scanf("%s",&c);
    }
    afficher(racine);
    system("pause");
    return 0;
    }

  17. #17
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Quel compilo utilises-tu ? Celà ne devrait pas compiler !!!
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  18. #18
    Membre émérite Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Par défaut
    Mais dis donc, tu es sûr que tu compiles ton code avant de nous le balancer brut de fonderie !!!!

  19. #19
    Invité(e)
    Invité(e)
    Par défaut fgdg
    j'utilise le devcpp

  20. #20
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    L'extension de ton source est .c ou .cpp ? (ou .C)
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

Discussions similaires

  1. Problème execution programme SDL
    Par youp_db dans le forum SDL
    Réponses: 2
    Dernier message: 11/02/2006, 18h06
  2. [Eclipse 3.1][Tomcat][Axis]Probleme execution WebService
    Par beZor dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 08/02/2006, 13h55
  3. Probleme execution programme
    Par jmjmjm dans le forum Bases de données
    Réponses: 3
    Dernier message: 27/11/2005, 19h32
  4. Probléme exécution de KSH
    Par Jaouad dans le forum Linux
    Réponses: 2
    Dernier message: 14/10/2005, 15h35
  5. [Kylix] probleme execution programme
    Par vin's dans le forum EDI
    Réponses: 1
    Dernier message: 31/03/2004, 12h25

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