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 :

mon programme a des erreurs que je n`arrive pas a resoudre


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 36
    Points : 18
    Points
    18
    Par défaut mon programme a des erreurs que je n`arrive pas a resoudre
    /*voici mon programe mais il me presente des erreurs et je n`arrive pas a y remedier.....ce programme est cense inserer des nombre saisie par l`utilisateur et supprimer ces nombres quand l`utilisateur en utilisant les nombres 1 ou 2. et les nombres sont saisie de facon desordone. cela se fait suivant la procedure fifo first in first out.*/

    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
    /* implemntation d`une stack utilisant les double linklist*/
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
     
    struct nodetype
    {
    	int data;
    	struct nodetype *next, *prev;
    };
     
    typedef struct nodetype node;
     
    void push(node*, int);
    void pop(node*, int*);
    void showstack(node*);
     
    void push(node *header, int x)
    {
    	node *q, *p;
     
    	p = new(node);
    	p->data = x;
    	p->prev=header;
    	p->next = header -> header ->next;
    	if(header->next != NULL) header->next->prev = p;
    	header->next = p;
     
    }
     
    void pop(node *header, int *x)
    {
    	node *top;
     
    	top = header->next;
    	if(top != NULL)
    	{
    		*x=top->data;
    		header->next=top->next;
    		if(top->next != NULL) top->next->prev = header;
    		free(p);
     
    	}
    void showsatck(node *header)
    {
    	node *p;
     
    	p = header->next;
    	while (p != header)
    	{
    		printf("%d  ", p->data);
    		p = p->next;
    	}
    	printf("\n");
    }
    void main(void)
    {
    	int code, num;
    	node *header;
     
    	header = new(node);
    	header->next = header;
    	header->prev = header;
    	printf("Enter 1 for push, 2 for pop, or 0 to exit: ");
    	scanf("%d", &code);
    	while (code != 0)
    	{
    		if (code == 1) // ceci va insere un nombre dans la table
    		{
    			printf("Enter a number to be pushed: ");
    			scanf("%d", &num);
    			push(header, num);
    		}
    		if (code == 2) // ceci effacera le nombre a etre entree
    		{
    						pop(header, &num);
     
    		}
    		showsatck(header);
    		printf("Enter 1 for insert, 2 for remove, or 0 to exit: ");
    		scanf("%d", &code);
    	}
    }
    /*SMALTO merci e votre aide*/


    [Balises CODE rajoutées par Loulou24, merci d'y penser à l'avenir]

  2. #2
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 369
    Points : 40 164
    Points
    40 164
    Par défaut
    et qu'est-ce qui ne va pas ?
    un problème de compilation ?
    un résultat qui n'est pas celui attendu ?
    précise.

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 36
    Points : 18
    Points
    18
    Par défaut ce sont des erreurs de compilation
    voici les messages d`erreurs que je rencontre......je crois que c`est pendant la compilation.....

    Compiling...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ass6.cpp
    ass6.cpp(28) : error C2039: 'header' : is not a member of 'nodetype'
            ass6.cpp(10) : see declaration of 'nodetype'
    ass6.cpp(28) : error C2227: left of '->next' must point to class/struct/union
    ass6.cpp(44) : error C2065: 'p' : undeclared identifier
    ass6.cpp(48) : error C2601: 'showstack' : local function definitions are illegal
    ass6.cpp(60) : error C2601: 'main' : local function definitions are illegal
    ass6.cpp(86) : fatal error C1075: end of file found before the left brace '{' at 'ass6.cpp(35)' was matched


    SMALTO

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut
    Déjà dans la fonction push :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header -> header ->next
    ne veut rien dire : header est de type nodetype qui contient les membres data next et prev.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut
    Le :
    dans ta fonction pop. p n'est pas défini dans ta fonction ni en statique dans ton fichier.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut
    Manque une accolade fermante } à la fin de ta fonction pop

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 36
    Points : 18
    Points
    18
    Par défaut je crois qu`il y a de l`amelioration...
    merci je viens tout juste de comprendre cela, et j`avais deja change.
    maintenant le programme marche mais il ne s`arrete pas quand il n`y a pas de valeur a supprimer, il devait je crois s`arreter quand il n`y plus de valeur a supprimer.......
    voici me nouveua code que j`ai .......j`ai un warning ......

    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
    /*le programme*/
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
     
    struct nodetype
    {
    	int data;
    	struct nodetype *header,*next, *prev;
    };
     
    typedef struct nodetype node;
     
    void push(node*, int);
    void pop(node*, int*);
    void showstack(node*);
     
    void push(node *header, int x)
    {
    	node *q, *p;
     
    	p = new(node);
    	p->data = x;
    	p->prev=header;
    	p->next = header->next;
    	if(header->next != NULL) header->next->prev = p;
    	header->next = p;
     
    }
     
    void pop(node *header, int *x)
    {
    	node *top,*p;
     
    	top = header->next;
    	if(top != NULL)
    	{
    		*x=top->data;
    		header->next=top->next;
    		if(top->next != NULL) top->next->prev = header;
    		free(p);
    	}
     
    	}
    void showstack(node *header)
    {
    	node *p;
     
    	p = header->next;
    	while (p != header)
    	{
    		printf("%d  ", p->data);
    		p = p->next;
    	}
    	printf("\n");
    }
    void main()
    {
    	int code, num;
    	node *header;
     
    	header = new(node);
    	header->next = header;
    	header->prev = header;
    	printf("Enter 1 for push, 2 for pop, or 0 to exit: ");
    	scanf("%d", &code);
    	while (code != 0)
    	{
    		if (code == 1) // ceci va insere un nombre dans la table
    		{
    			printf("Enter a number to be pushed: ");
    			scanf("%d", &num);
    			push(header, num);
    		}
    		if (code == 2) // ceci effacera le nombre a etre entree
    		pop(header, &num);
     
     
    		showstack(header);
    		printf("Enter 1 for insert, 2 for remove, or 0 to exit: ");
    		scanf("%d", &code);
    	}
    }

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: mon programme a des erreurs que je n`arrive pas a resoud
    Citation Envoyé par smalto
    Fonction inconnue. T'es sûr que c'est du C ?

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut
    Avec les balises Code, ça sera plus visible stp, merci 8)

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: je crois qu`il y a de l`amelioration...
    Citation Envoyé par smalto
    /*le programme*/

    #include <stdio.h>
    Merci de lire les regles du forum et de mettre les

  11. #11
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut Re: mon programme a des erreurs que je n`arrive pas a resoud
    Citation Envoyé par smalto
    L'extension doit être .c (en minuscule) si tu souhaite faire du C, si tu fais du C++ demande à un modérateur (moi par exemple) de déplacer ton message dans le forum en dessous

  12. #12
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    En fait le message vient du forum C++, mais comme le code ne contient pas une seule ligne de C++ j'ai préféré déplacer. Visiblement le posteur souhaite corriger ses erreurs, pas qu'on lui rabache "utilise std::list" ou "printf c'est moche"

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Loulou24
    En fait le message vient du forum C++, mais comme le code ne contient pas une seule ligne de C++ j'ai préféré déplacer. Visiblement le posteur souhaite corriger ses erreurs, pas qu'on lui rabache "utilise std::list" ou "printf c'est moche"
    Quand on ne sait pas trop ce qu'on fait, on prend des risques !
    new() n'est pas défini !

Discussions similaires

  1. [Flex et Bison] Des erreurs que je ne comprends pas
    Par Adenora dans le forum Générateurs de compilateur
    Réponses: 0
    Dernier message: 27/11/2010, 15h12
  2. Message d'erreur que je n'arrive pas à résoudre
    Par MAMIKA dans le forum MATLAB
    Réponses: 5
    Dernier message: 15/09/2008, 13h17
  3. erreur que je n'arrive pas a trouver
    Par will Igetit dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/09/2008, 19h11
  4. Erreur que je n'arrive pas à corriger
    Par parano dans le forum C
    Réponses: 6
    Dernier message: 14/01/2007, 14h00
  5. Réponses: 20
    Dernier message: 08/06/2006, 10h12

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