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