From 2ff977137772c765b2f4288dd0f51ef2ca8e1238 Mon Sep 17 00:00:00 2001 From: "paul.albuquer" <paul.albuquerque@hesge.ch> Date: Sun, 14 Nov 2021 14:03:57 +0100 Subject: [PATCH] added source code postfixe evaluation --- source_codes/piles/eval_post.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 source_codes/piles/eval_post.c diff --git a/source_codes/piles/eval_post.c b/source_codes/piles/eval_post.c new file mode 100644 index 0000000..9c2993b --- /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)); +} -- GitLab