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