From c34cd59be89fb26e63fe959b98afabb4f24ba5bd Mon Sep 17 00:00:00 2001 From: Rasmus Luha Date: Wed, 21 Sep 2022 14:16:01 +0300 Subject: init commit --- src/main.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/main.c (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..ec1de31 --- /dev/null +++ b/src/main.c @@ -0,0 +1,45 @@ +#include +#include "stack.h" + +int main() { + int x, y, z; + + while (1) { + scanf("%d", &x); + + // 1. Kui x==0 siis print stack. + if (x == 0){ + printf("\nPrindin stacki\n"); + stackPrint(); + break; + } + + // 2. Kui empty Push. + else if (stackIsEmpty()) + stackPush(x); + + // 3. Kui x pos. ja peeked pos: push(x). + // 4. kui x pos. aga peeked neg., y=pop() ja push(x+y). + else if (x >= 0){ + y = stackPeek(); + if (y >= 0) + stackPush(x); + + else{ + z = stackPop(); + if (x+z != 0) + stackPush(x+z); + } + } + + // 5. Kui x on neg, siis pop() + else if (x < 0) { + z = stackPop(); + if (x+z != 0) { + stackPush(x+z); + } + } + + } // While loop End + return 0; +} -- cgit v1.2.3