Calculatrice en langage c et j'ai pas trouver où est le probleme

Fermé
zeyneb - Modifié le 2 févr. 2019 à 16:22
Bonsoir,
SVP qui peux corriger ce programme j'ai besoin de lui dimanche soir svp c'est urgent aide moi svp


#include <stdio.h>
#include <stdlib.h>

char  stack [20];
int s=-1;
char depiler (){
if (s==-1)
    return -1;
else

     return stack [s--];
}
void empiler (char x)
{
    s=s+1;
    stack[s]=x;
}
int priority (char x)
{
    if(x=='(')
        return 0;
    if (x=='+' || x=='-')
        return 1;
    if(x=='*'|| x=='/')
        return 2;
}

main()
{     char *e,x;
    char exp[20];
    printf("entrez une expression : ");
    scanf("%c",exp);


*e = exp;
    while (*e !='\0')
        if (isalnum(*e))
        printf("%s",*e);
    else if(*e=='(')
                empiler(*e);
    else if (*e==')')
    {
        while (x=depiler() && x!='(')
                printf("%c",x);
    }
    else
    {
        while (priority(pile[s])>=priority(*e))
            printf("%c",depiler())
            empiler (*e);
    }
    e++;
    while (s!=-1)
    {
        printf("%c",deipler());
}
}
int stack[20]
int S ,i,*e ,n1,n2,n3,num ;
char exp [20];
printf("entrez lexpression post fixe :");
scanf("%c",exp);
i=1;
s=-1;


*e=exp;

while (*e !='\0')
if {
    isdigit(*e)
    num=*e-48;
    empiler(num);}
else {n1=depiler();
n2=depiler();
}
switch (*e){
    case '+':
    {n3=n1+n2;
    break;}
    case '-':
        {
            n3=n1-n2;
            break;
        }
    case '*':
        {
            n3=n1*n2;
            break;
        }
        case '/'
        if {(n2!=0)
            n3=n1/n2;}

        else{
            printf(" erreur");
            empiler(n3);}
        e++;}
}

}


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également: