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