em viết chương trình này nhưng nó ko in ra gì hết :(
ai biết tại sao ko giúp với thanks
Code:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define MaxLength 100
typedef int ElementType;
typedef struct{

ElementType Elements[MaxLength];
int Top_idx; //giu vi tri dinh ngan xep
}Stack;
Stack S;

void MakeNull_Stack(Stack& S){
S.Top_idx=MaxLength;
}

int Empty_Stack(Stack S){
return S.Top_idx==MaxLength;
}

int Full_Stack(Stack S){
return S.Top_idx==0;
}

ElementType Top(Stack S){
            if(!Empty_Stack(S))return S.Elements[S.Top_idx];
            else printf("Loi! Ngan xep rong");}
            
void Pop(Stack& S){
    if(!Empty_Stack(S))
    S.Top_idx=S.Top_idx+1;
    else printf("Loi! Ngan xep rong!");
}

void Push(ElementType X, Stack& S){
if(Full_Stack(S))
printf("Loi! Ngan xep day!");
else{
S.Top_idx=S.Top_idx-1;
S.Elements[S.Top_idx]=X;
}
}


int Eval(char* s){
    int i?;
    Stack ST;
    MakeNull_Stack(ST);
    while(i<strlen(s)){
              if((s[i]!='+')||(s[i]!='-')||(s[i]!='*')||(s[i]!='/'))
                   Push((s[i]-'0'),ST);
              else if((s[i]=='+')||(s[i]=='-')||(s[i]=='*')||(s[i]=='/')){
                   int x,y;
                   if(!Empty_Stack(ST)){
                                       y=Top(ST);
                                       Pop(ST);
                                       }
                   else break;
                   if(!Empty_Stack(ST)){
                                       x=Top(ST);
                                       Pop(ST);
                                       }
                   else break;
                   int t;
                   if(s[i]=='+') t=x+y;
                   else  if(s[i]=='-') t=x-y;
                   else  if(s[i]=='*') t=x*y;
                   else  if(s[i]=='/') t=x/y;
                   Push(t,ST);
                   }//xu li toan tu trong chuoi
                   }
              
              if((i==strlen(s))&&(!Empty_Stack(ST))){
                                                    int z=Top(ST);
                                                    Pop(ST);
                                                    if(Empty_Stack(ST))
                                                                       printf("KQ %d",z);
                                                                       else printf("BT sai");
                                                                       }
}

int main(){
    char Chuoi[255];
    printf("Nhap chuoi: ");
    gets(Chuoi);
    Eval(Chuoi);
    getch();
}