diff --git a/source_codes/piles/eval_post.c b/source_codes/piles/eval_post.c new file mode 100644 index 0000000000000000000000000000000000000000..9c2993ba7992966552eeb8e2d358e5c556589436 --- /dev/null +++ b/source_codes/piles/eval_post.c @@ -0,0 +1,32 @@ +#include <stdio.h> +#include <stdlib.h> +#include "pile_ptr_int.h" + +void main(int argc,char** argv) { + pile stack_nb = pile_creer(); + int res,nb1,nb2; + for (int i=1;i<argc;i++) { + if ( argv[i][0] < '0' || '9' < argv[i][0]) { + nb1 = pile_depiler(&stack_nb); + nb2 = pile_depiler(&stack_nb); + } + switch(argv[i][0]) { + case '+': + res = nb2+nb1; + break; + case '-': + res = nb2-nb1; + break; + case 'x': + res = nb2*nb1; + break; + case '/': + res = nb2/nb1; + break; + default : + res = atoi(argv[i]); + } + pile_empiler(&stack_nb,res); + } + printf("%d\n",pile_depiler(&stack_nb)); +}