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:
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]
ce sont des erreurs de compilation
voici les messages d`erreurs que je rencontre......je crois que c`est pendant la compilation.....
Compiling...
Code:
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
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:
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);
}
} |
Re: mon programme a des erreurs que je n`arrive pas a resoud
Fonction inconnue. T'es sûr que c'est du C ?
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 :tagcode:
Re: mon programme a des erreurs que je n`arrive pas a resoud
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 ;)