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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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
    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;
    }

  10. #10
    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

  11. #11
    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 !!!!

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

  13. #13
    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

  14. #14
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Faut mettre .c.
    Il faut signaler au compilo que le projet est un projet C.

  15. #15
    Invité(e)
    Invité(e)
    Par défaut erte
    ca donne rien o momnt de la compilation il ay une erreur

  16. #16
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par brakeche
    ca donne rien o momnt de la compilation il ay une erreur
    quelle erreur ?

  17. #17
    Invité(e)
    Invité(e)
    Par défaut comme ca c juste
    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
    #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)
    {
    if((*a)==NULL)
    {
    *a=(noeud*)malloc(sizeof(noeud));                                             
    (*a)->val=elt;                                        
    (*a)->g=NULL;                                       
    (*a)->d=NULL;
    }                                        
    else{
    construire(&(*a)->g,elt);
    construire(&(*a)->d,elt);
    } 
    }
    void afficher(arbre a)
    {
    if(a!=NULL)
    {
     printf("%c",a->val);
     afficher(a->g);                                                       
     afficher(a->d);
     }
    }
    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;
    }
    mais il ya un petit detail
    o moment de l'affichage
    normalement il affiche seulement se que g fait entrer ,ca se repete pas?

  18. #18
    Expert confirmé

    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 : 44
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par brakeche
    mais il ya un petit detail
    o moment de l'affichage
    normalement il affiche seulement se que g fait entrer ,ca se repete pas?
    c'est clair au moins... Donnes un exemple de ce que tu rentres, ce que cela te retourne et ce que tu aurais voulu... Parce que là j'ai rien suivi...

    Et entre nous, c'est une mauvaise idée de cacher les pointeurs...

    Jc

  19. #19
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par brakeche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    typedef struct noeud *arbre;
    struct noeud {
                  char val;
                  arbre g,d;
                  };
    arbre racine;char c;
    Pouquoi des globales ?
    Citation Envoyé par brakeche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    *a=(noeud*)malloc(sizeof(noeud));
    Pas du C.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    *a = malloc (sizeof (struct noeud));
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    *a = malloc (sizeof **a);

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