From 81388f4343e33bc8936d06b2c8d477f5de76a462 Mon Sep 17 00:00:00 2001 From: Bohdan Kapliuk Date: Sat, 12 Oct 2024 14:49:36 +0300 Subject: [PATCH] cv3 --- cv3/program.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/cv3/program.c b/cv3/program.c index e69de29..53de6da 100644 --- a/cv3/program.c +++ b/cv3/program.c @@ -0,0 +1,65 @@ +#include +#include +#include +#include + +#define STACK_SIZE 100 + +struct stack{ + float values[STACK_SIZE]; + int size; +}; + +int main(){ + struct stack mystack; + memset(&mystack,0,sizeof(struct stack)); + char vstup[STACK_SIZE]; + int counter = 0; + while(1){ + fgets(vstup, STACK_SIZE, stdin); + if(vstup[0] == '-' || vstup[0] == '+' || vstup[0] == '*' || vstup[0] == '/'){ + if(vstup[0] == '-'){ + mystack.values[0] = mystack.values[0] - mystack.values[1]; + for(int i = 1; mystack.values[i] != 0;i++){ + mystack.values[i] = mystack.values[i+1]; + mystack.values[i+1] = 0; + counter--; + } + } + if(vstup[0] == '/'){ + mystack.values[0] = mystack.values[0] / mystack.values[1]; + for(int i = 1; mystack.values[i] != 0;i++){ + mystack.values[i] = mystack.values[i+1]; + mystack.values[i+1] = 0; + counter--; + } + } + if(vstup[0] == '*'){ + mystack.values[0] = mystack.values[0] * mystack.values[1]; + for(int i = 1; mystack.values[i] != 0;i++){ + mystack.values[i] = mystack.values[i+1]; + mystack.values[i+1] = 0; + counter--; + } + } + if(vstup[0] == '+'){ + mystack.values[0] = mystack.values[0] + mystack.values[1]; + for(int i = 1; mystack.values[i] != 0;i++){ + mystack.values[i] = mystack.values[i+1]; + mystack.values[i+1] = 0; + counter--; + } + } + } + else{ + float cislo = strtof(vstup, NULL); + mystack.values[counter] = cislo; + counter++; + + } + mystack.size = counter; + for(int i =0; mystack.values[i] != 0;i++){ + printf("%.2f ", mystack.values[i]); + } + } +} \ No newline at end of file