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. Contributeur
    Bonjour,
    Pas claire la question... De plus les réponses, s'il y en a seront ici...
    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
      Eh non hélas... au mieux il y a la possibilité d'utiliser la petite enveloppe en haut de votre page
      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