#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 menu;
double value;
double cal1, cal2;
reset();
while (1) {
switch (menu) {
case 1:
cal2 = pop();
cal1 = pop();
push(cal1 + cal2);
break;
case 2:
cal2 = pop();
cal1 = pop();
push(cal1 - cal2);
break;
case 3:
cal2 = pop();
cal1 = pop();
push(cal1 * cal2);
break;
case 4:
cal2 = pop();
cal1 = pop();
push(cal1 / cal2);
break;
case 5:
push(value);
break;
case 9:
break;
}
if (menu == 9) {
break;
}
}
answer();
return 0;
}
void push(double value)
{
if (isFull() == 0) {
stack[sp] = value;
sp++;
}
}
double pop(void)
{
double value;
if (isEmpty() == 0) {
sp--;
value = stack[sp];
return value;
}
return 0;
}
int isFull(void)
{
if (sp == SIZE) {
return 1;
}
return 0;
}
int isEmpty(void)
{
if (sp == 0) {
return 1;
}
return 0;
}
void answer(void)
{
printf("answer:%f\n", stack
[sp
- 1]); }
void reset(void)
{
sp = 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNJWkUgMTAKZG91YmxlIHN0YWNrW1NJWkVdOwppbnQgc3A7Cgp2b2lkIHB1c2goZG91YmxlIHZhbHVlKTsKZG91YmxlIHBvcCh2b2lkKTsKaW50IGlzRnVsbCh2b2lkKTsKaW50IGlzRW1wdHkodm9pZCk7CnZvaWQgYW5zd2VyKHZvaWQpOwp2b2lkIHJlc2V0KHZvaWQpOwoKaW50IG1haW4odm9pZCkKewogICAgaW50IG1lbnU7CiAgICBkb3VibGUgdmFsdWU7CiAgICBkb3VibGUgY2FsMSwgY2FsMjsKCiAgICByZXNldCgpOwoKICAgIHdoaWxlICgxKSB7CiAgICAgICAgc2NhbmYoIiVkIiwgJm1lbnUpOwoKICAgICAgICBzd2l0Y2ggKG1lbnUpIHsKCiAgICAgICAgY2FzZSAxOgogICAgICAgICAgICBjYWwyID0gcG9wKCk7CiAgICAgICAgICAgIGNhbDEgPSBwb3AoKTsKICAgICAgICAgICAgcHVzaChjYWwxICsgY2FsMik7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgIGNhbDIgPSBwb3AoKTsKICAgICAgICAgICAgY2FsMSA9IHBvcCgpOwogICAgICAgICAgICBwdXNoKGNhbDEgLSBjYWwyKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgY2FsMiA9IHBvcCgpOwogICAgICAgICAgICBjYWwxID0gcG9wKCk7CiAgICAgICAgICAgIHB1c2goY2FsMSAqIGNhbDIpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSA0OgogICAgICAgICAgICBjYWwyID0gcG9wKCk7CiAgICAgICAgICAgIGNhbDEgPSBwb3AoKTsKICAgICAgICAgICAgcHVzaChjYWwxIC8gY2FsMik7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgIHNjYW5mKCIlbGYiLCAmdmFsdWUpOwogICAgICAgICAgICBwcmludGYoImRhdGE6JWZcbiIsIHZhbHVlKTsKICAgICAgICAgICAgcHVzaCh2YWx1ZSk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlIDk6CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgaWYgKG1lbnUgPT0gOSkgewogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CgogICAgYW5zd2VyKCk7CgogICAgcmV0dXJuIDA7Cn0KCnZvaWQgcHVzaChkb3VibGUgdmFsdWUpCnsKICAgIGlmIChpc0Z1bGwoKSA9PSAwKSB7CiAgICAgICAgc3RhY2tbc3BdID0gdmFsdWU7CiAgICAgICAgc3ArKzsKICAgIH0KfQoKZG91YmxlIHBvcCh2b2lkKQp7CiAgICBkb3VibGUgdmFsdWU7CgogICAgaWYgKGlzRW1wdHkoKSA9PSAwKSB7CiAgICAgICAgc3AtLTsKICAgICAgICB2YWx1ZSA9IHN0YWNrW3NwXTsKICAgICAgICByZXR1cm4gdmFsdWU7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0KCmludCBpc0Z1bGwodm9pZCkKewogICAgaWYgKHNwID09IFNJWkUpIHsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQoKaW50IGlzRW1wdHkodm9pZCkKewogICAgaWYgKHNwID09IDApIHsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQoKdm9pZCBhbnN3ZXIodm9pZCkKewogICAgcHJpbnRmKCJhbnN3ZXI6JWZcbiIsIHN0YWNrW3NwIC0gMV0pOwp9Cgp2b2lkIHJlc2V0KHZvaWQpCnsKICAgIHNwID0gMDsKfQ==