Manipulation de la pile
enisione
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
svp j'ai un problème dans mon code , mais j'ai pas pu le trouvé , en fait mon code est exécutable mais je vous invite à l'essayer pour pouvoir trouver le problème.
mon programme te donne le choix d'empiler ou dépiler des caractères dans une pile ;
voici l'algorithme :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Liste_pile
{
char T[50];
int som;
} pile ;
void depiler (pile P, char *e)
{
int i;
if(P.som != 0)
{
*e = P.T[0];
for(i=0;i<P.som;i++)
{
P.T[i] = P.T[i+1];
}
P.som = P.som -1;
}
else { *e='0'; printf("\n erreur, pile vide "); }
}
void empiler (pile P, char *e)
{
int i;
P.som=P.som + 1;
for(i=P.som;i>0;i--)
{
P.T[i]=P.T[i-1];
}
P.T[0] = *e;
}
int main(int argc, char *argv[])
{
int choix,rep,i;
pile P;
char c;
rep=1;
P.som=0;
while (rep==1)
{
printf(" \n ecrire 1 si tu veux empiler et 0 si tu veux depiler: "); scanf(" %d",&choix);
if (choix==1)
{
printf("\n ecrire votre caractere : "); c=getchar();
empiler(P,&c);
P.som++;
}
else if (choix==0)
{
depiler(P,&c);
printf("\n le sommet est : %c",c);
P.som--;
}
else { printf("erreur "); }
printf("\n veux tu faire autre chose \n 0- non \n 1- oui \n "); scanf("%d",&rep);
}
for (i=0;i<=P.som;i++)
{
printf(" %c ",P.T[i]);
}
return 0;
}
Merci
svp j'ai un problème dans mon code , mais j'ai pas pu le trouvé , en fait mon code est exécutable mais je vous invite à l'essayer pour pouvoir trouver le problème.
mon programme te donne le choix d'empiler ou dépiler des caractères dans une pile ;
voici l'algorithme :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Liste_pile
{
char T[50];
int som;
} pile ;
void depiler (pile P, char *e)
{
int i;
if(P.som != 0)
{
*e = P.T[0];
for(i=0;i<P.som;i++)
{
P.T[i] = P.T[i+1];
}
P.som = P.som -1;
}
else { *e='0'; printf("\n erreur, pile vide "); }
}
void empiler (pile P, char *e)
{
int i;
P.som=P.som + 1;
for(i=P.som;i>0;i--)
{
P.T[i]=P.T[i-1];
}
P.T[0] = *e;
}
int main(int argc, char *argv[])
{
int choix,rep,i;
pile P;
char c;
rep=1;
P.som=0;
while (rep==1)
{
printf(" \n ecrire 1 si tu veux empiler et 0 si tu veux depiler: "); scanf(" %d",&choix);
if (choix==1)
{
printf("\n ecrire votre caractere : "); c=getchar();
empiler(P,&c);
P.som++;
}
else if (choix==0)
{
depiler(P,&c);
printf("\n le sommet est : %c",c);
P.som--;
}
else { printf("erreur "); }
printf("\n veux tu faire autre chose \n 0- non \n 1- oui \n "); scanf("%d",&rep);
}
for (i=0;i<=P.som;i++)
{
printf(" %c ",P.T[i]);
}
return 0;
}
Merci
A voir également:
- Manipulation de la pile
- Pile carte mere - Guide
- Mode anti manipulation involontaire - Forum Xiaomi
- Pile qui chauffe - Forum Mobile
- Pile manette wii ✓ - Forum Wii
- Dégradé involontaire ✓ - Forum CSS