Code erroné

Bonjour,

svp j'ai besoin de l'aide j'ai un programme qui ne fonctionne que son de debut si c possible en privé

5 réponses

  1. oki oki
    voila mon code
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>

    typedef struct
    {
    int pil[40];
    int sommet;
    int x;
    int y;

    } piles;
    piles pile;
    int empiler(int element)
    {
    if(element!=0)
    {
    if(pile.sommet<40)
    {
    pile.pil[pile.sommet]=element;
    pile.sommet++;
    return 1;
    }
    else
    {
    printf("la pile est pleine ");
    return 0;
    }
    }

    }
    int desempiler()
    {
    int element;
    if(pile.sommet>0)
    {
    pile.sommet--;
    element=pile.pil[pile.sommet];
    return element;
    }
    else
    {
    printf("la pile est vide");
    return 0;
    }

    }
    void echeles ()
    {
    int i;
    int x=18,y=5;
    for(i=0; i<10; i++,x--,y++)
    {

    gotoxy(x,y);
    printf("/-/");

    }
    for(x=19,y=5,i=0; i<10; i++,x++,y++)
    {
    gotoxy(x,y);
    printf("%c-%c",92,92);
    }
    for(x=38,y=5,i=0; i<10; i++,x--,y++)
    {
    gotoxy(x,y);
    printf("/-/");
    }
    for(x=39,y=5,i=0; i<10; i++,x++,y++)
    {
    gotoxy(x,y);
    printf("%c-%c",92,92);
    }

    }
    void avant()
    {
    int x,y,pas,t1=0,t2=0,t3=0,indic,i;
    echeles();

    gotoxy(pile.x,pile.y);
    textcolor(YELLOW);
    cprintf("%c%c%c",219,219,219);
    do
    {

    gotoxy(20,20);
    printf("saisir le nombre de pas");
    scanf("%d",&pas);
    indic=empiler(pas);
    if(indic==1)
    {
    echeles();
    pile.x=pile.x+pas;
    i=0;
    while(i<pas)
    {
    if((pile.x>9 && pile.x<20) ||(pile.x>29 && pile.x<40) )
    {

    for(; i<pas && pile.y>=5 ; i++)
    {
    pile.y--;
    }

    for(; i<pas && pile.y<5; i++)
    {
    pile.y++;

    }

    }
    else
    {

    for(; i<pas && pile.y<5 ; i++)
    {
    pile.y--;
    }

    for(; i<pas && pile.y>=5 ; i++)
    {
    pile.y++;

    }
    }

    }

    }
    clrscr();
    if(pile.x>17 && pile.x<=27)
    {
    if(t1==0)
    {
    pile.x++;
    t1=1;
    }
    }

    if(pile.x>27&& pile.x<=37)
    {
    if(t2==0)
    {
    pile.x++;
    t2=1;
    }

    }

    if(pile.x>37)
    {
    if(t3==0)
    {
    pile.x++;
    t3=1;
    }
    }
    x=pile.x;
    y=pile.y;
    echeles();
    gotoxy(x,y);
    textcolor(YELLOW);
    cprintf("%c%c%c",176,176,176);
    getch();
    }
    while(pas!=0 && pile.x<50);

    }
    void recul()
    {
    int pas ,i=0,a,k,t1,t2,t3,x,y;
    printf("saisir le nombre de pas");
    scanf("%d",&a);
    for(i=0; i<a; i++)
    {
    pas=desempiler();
    if(pas!=0)
    {
    echeles();
    pile.x=pile.x-pas;
    k=0;
    do
    {
    if((pile.x>19 && pile.x<31) ||(pile.x>39 && pile.x<50) )
    {

    for(; i<pas && pile.y>=5 ; i++)
    {
    pile.y--;
    }

    for(; i<pas && pile.y<5; i++)
    {
    pile.y++;

    }

    }
    else
    {

    for(; i<pas && pile.y<5 ; i++)
    {
    pile.y++;
    }

    for(; i<pas && pile.y>=5 ; i++)
    {
    pile.y--;

    }
    }

    clrscr();
    if(pile.x>17 && pile.x<=27)
    {
    if(t1==0)
    {
    pile.x--;
    t1=1;
    }
    }

    if(pile.x>27&& pile.x<=37)
    {
    if(t2==0)
    {
    pile.x--;
    t2=1;
    }

    }

    if(pile.x>37)
    {
    if(t3==0)
    {
    pile.x--;
    t3=1;
    }
    }
    x=pile.x;
    y=pile.y;
    echeles();
    gotoxy(x,y);
    textcolor(YELLOW);
    cprintf("%c%c%c",176,176,176);
    getch();

    }
    while(i<pas);
    }
    }
    getch();
    }

    int main()
    {
    pile.x=9;
    pile.y=14;
    pile.sommet=0;
    avant();
    recul();
    return 0;
    }

    on demande a l'utilisateur combien de pas veut il avancé on vérifie si on ai pas arrivé a la fin on empile et aussi pour desemplier mais suivant l'ordre des piles si on empile A B C D on desempile D C B A j'ai tjrs des blems le curseur se déplace sans orientation
    1. Contributeur
      Eh non hélas... au mieux il y a la possibilité d'utiliser la petite enveloppe en haut de votre page
      1. abdel c'est un programme qui se base sur la gestion des piles le curseur ne bouge pas il doit avancé en laissant sa trace
        1. C'est ^Abel^, pas abdel..
        2. bah je m'excuse c'est juste une faute de frappe
      2. Contributeur
        Bonjour,
        Pas claire la question... De plus les réponses, s'il y en a seront ici...