#include <stdio.h>
#define SIZE 10
double stack[SIZE];
int sp;
void push(double value);
double pop(void);
int isFull(void);
int isEmpty(void);
void answer(void);
void reset(void);
int main(void) {
int resp,i;
double data;
reset();
while (1) {
scanf("%d", &resp);
if(resp=9)
break;
switch (resp) {
case 1:
push(pop() + pop());
break;
case 2:
{
double b = pop();
double a = pop();
push(a - b);
}
break;
case 3:
push(pop() * pop());
break;
case 4:
{
double d = pop();
double c = pop();
if (d != 0) {
push(c / d);
} else {
printf("0では割れません\n");
}
}
break;
case 5:
scanf("%lf", &data);
push(data);
printf("data: %lf\n", data);
break;
}
}
answer();
return 0;
}
void push(double value) {
if (isFull()) {
printf("スタックが満タンで入りません\n");
} else {
stack[sp++] = value;
}
}
double pop(void) {
if (isEmpty()) {
printf("スタックが空で取り出せませんでした\n");
return 0;
} else {
return stack[--sp];
}
}
int isFull(void) {
if(sp >= SIZE){
return 5;
}else
return 0;
}
int isEmpty(void) {
if(sp <= 0){
return 5;
}else
return 0;
}
void answer(void) {
printf("answer: %lf\n", stack[sp-1]);
}
void reset(void) {
sp = 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNJWkUgMTAKZG91YmxlIHN0YWNrW1NJWkVdOwppbnQgc3A7Cgp2b2lkIHB1c2goZG91YmxlIHZhbHVlKTsKZG91YmxlIHBvcCh2b2lkKTsKaW50IGlzRnVsbCh2b2lkKTsKaW50IGlzRW1wdHkodm9pZCk7CnZvaWQgYW5zd2VyKHZvaWQpOwp2b2lkIHJlc2V0KHZvaWQpOwoKaW50IG1haW4odm9pZCkgewogICAgaW50IHJlc3AsaTsKICAgIGRvdWJsZSBkYXRhOwoKICAgIHJlc2V0KCk7CgogICAgd2hpbGUgKDEpIHsKICAgIHNjYW5mKCIlZCIsICZyZXNwKTsKCWlmKHJlc3A9OSkKCWJyZWFrOwogICAgc3dpdGNoIChyZXNwKSB7CiAgICAgICAgICAgIGNhc2UgMTogCiAgICAgICAgICAgICAgICBwdXNoKHBvcCgpICsgcG9wKCkpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBkb3VibGUgYiA9IHBvcCgpOwogICAgICAgICAgICAgICAgICAgIGRvdWJsZSBhID0gcG9wKCk7CiAgICAgICAgICAgICAgICAgICAgcHVzaChhIC0gYik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAzOiAgCiAgICAgICAgICAgICAgICBwdXNoKHBvcCgpICogcG9wKCkpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNDogCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgZG91YmxlIGQgPSBwb3AoKTsKICAgICAgICAgICAgICAgICAgICBkb3VibGUgYyA9IHBvcCgpOwogICAgICAgICAgICAgICAgICAgIGlmIChkICE9IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChjIC8gZCk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIw44Gn44Gv5Ymy44KM44G+44Gb44KTXG4iKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA1OiAKICAgICAgICAgICAgICAgIHNjYW5mKCIlbGYiLCAmZGF0YSk7CiAgICAgICAgICAgICAgICBwdXNoKGRhdGEpOwogICAgICAgICAgICAgICAgcHJpbnRmKCJkYXRhOiAlbGZcbiIsIGRhdGEpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgYW5zd2VyKCk7CiAgICByZXR1cm4gMDsKfQp2b2lkIHB1c2goZG91YmxlIHZhbHVlKSB7CiAgICBpZiAoaXNGdWxsKCkpIHsKICAgICAgICBwcmludGYoIuOCueOCv+ODg+OCr+OBjOa6gOOCv+ODs+OBp+WFpeOCiuOBvuOBm+OCk1xuIik7CiAgICB9IGVsc2UgewogICAgICAgIHN0YWNrW3NwKytdID0gdmFsdWU7CiAgICB9Cn0KZG91YmxlIHBvcCh2b2lkKSB7CiAgICBpZiAoaXNFbXB0eSgpKSB7CiAgICAgICAgcHJpbnRmKCLjgrnjgr/jg4Pjgq/jgYznqbrjgaflj5bjgorlh7rjgZvjgb7jgZvjgpPjgafjgZfjgZ9cbiIpOwogICAgICAgIHJldHVybiAwOwogICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gc3RhY2tbLS1zcF07CiAgICB9Cn0KaW50IGlzRnVsbCh2b2lkKSB7CiAgICBpZihzcCA+PSBTSVpFKXsKICAgIAlyZXR1cm4gNTsKICAgIH1lbHNlCiAgICByZXR1cm4gMDsKfQppbnQgaXNFbXB0eSh2b2lkKSB7CiAgICBpZihzcCA8PSAwKXsKICAgIAlyZXR1cm4gNTsKICAgIH1lbHNlCiAgICByZXR1cm4gMDsKfQp2b2lkIGFuc3dlcih2b2lkKSB7CiAgICAgICAgcHJpbnRmKCJhbnN3ZXI6ICVsZlxuIiwgc3RhY2tbc3AtMV0pOwogICAgCn0Kdm9pZCByZXNldCh2b2lkKSB7CiAgICBzcCA9IDA7Cn0=