#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 cmd;
double a, b, num;
int isEnd=0;
reset();
while (1)
{
switch (cmd)
{
case 1:
if (sp >= 2)
{
b = pop();
a = pop();
push(a + b);
}
else
{
}
break;
case 2:
if (sp >= 2)
{
b = pop();
a = pop();
push(a - b);
}
else
{
}
break;
case 3:
if (sp >= 2)
{
b = pop();
a = pop();
push(a * b);
}
else
{
}
break;
case 4:
if (sp >= 2)
{
b = pop();
a = pop();
if (b != 0)
push(a / b);
else
}
else
{
}
break;
case 5:
push(num);
break;
case 9:
isEnd = 1;
}
if (isEnd == 1)
break;
}
answer();
return 0;
}
void push(double value)
{
if (!isFull())
{
stack[sp++] = value;
}
else
{
}
}
double pop(void)
{
if (!isEmpty())
{
return stack[--sp];
}
else
{
printf("スタックが空で取り出せませんでした\n"); return 0.0;
}
}
int isFull(void)
{
return sp >= SIZE;
}
int isEmpty(void)
{
return sp <= 0;
}
void answer(void)
{
if (!isEmpty())
{
printf("answer: %lf\n", stack
[sp
- 1]); }
else
{
printf("スタックが空で何も取り出せませんでした\n"); }
}
void reset(void)
{
sp = 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNJWkUgMTAKZG91YmxlIHN0YWNrW1NJWkVdOwppbnQgc3A7Cgp2b2lkIHB1c2goZG91YmxlIHZhbHVlKTsKZG91YmxlIHBvcCh2b2lkKTsKaW50IGlzRnVsbCh2b2lkKTsKaW50IGlzRW1wdHkodm9pZCk7CnZvaWQgYW5zd2VyKHZvaWQpOwp2b2lkIHJlc2V0KHZvaWQpOwoKaW50IG1haW4odm9pZCkKewogICAgaW50IGNtZDsKICAgIGRvdWJsZSBhLCBiLCBudW07CglpbnQgaXNFbmQ9MDsKCiAgICByZXNldCgpOwogICAgd2hpbGUgKDEpCiAgICB7CiAgICAgICAgc2NhbmYoIiVkIiwgJmNtZCk7CgogICAgICAgIHN3aXRjaCAoY21kKQogICAgICAgIHsKICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgIGlmIChzcCA+PSAyKSAKCQkJewogICAgICAgICAgICAgICAgYiA9IHBvcCgpOwogICAgICAgICAgICAgICAgYSA9IHBvcCgpOwogICAgICAgICAgICAgICAgcHVzaChhICsgYik7CiAgICAgICAgICAgIH0gCgkJCWVsc2UgCgkJCXsKICAgICAgICAgICAgICAgIHByaW50Zigi44K544K/44OD44Kv44GM6Laz44KK44G+44Gb44KTXG4iKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgIGlmIChzcCA+PSAyKSAKCQkJewogICAgICAgICAgICAgICAgYiA9IHBvcCgpOwogICAgICAgICAgICAgICAgYSA9IHBvcCgpOwogICAgICAgICAgICAgICAgcHVzaChhIC0gYik7CiAgICAgICAgICAgIH0gCgkJCWVsc2UgCgkJCXsKICAgICAgICAgICAgICAgIHByaW50Zigi44K544K/44OD44Kv44GM6Laz44KK44G+44Gb44KTXG4iKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgIGlmIChzcCA+PSAyKSAKCQkJewogICAgICAgICAgICAgICAgYiA9IHBvcCgpOwogICAgICAgICAgICAgICAgYSA9IHBvcCgpOwogICAgICAgICAgICAgICAgcHVzaChhICogYik7CiAgICAgICAgICAgIH0gCgkJCWVsc2UgCgkJCXsKICAgICAgICAgICAgICAgIHByaW50Zigi44K544K/44OD44Kv44GM6Laz44KK44G+44Gb44KTXG4iKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgIGlmIChzcCA+PSAyKSAKCQkJewogICAgICAgICAgICAgICAgYiA9IHBvcCgpOwogICAgICAgICAgICAgICAgYSA9IHBvcCgpOwogICAgICAgICAgICAgICAgaWYgKGIgIT0gMCkKICAgICAgICAgICAgICAgICAgICBwdXNoKGEgLyBiKTsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICBwcmludGYoIjDjgaflibLjgozjgb7jgZvjgpNcbiIpOwogICAgICAgICAgICB9IAoJCQllbHNlIAoJCQl7CiAgICAgICAgICAgICAgICBwcmludGYoIuOCueOCv+ODg+OCr+OBjOi2s+OCiuOBvuOBm+OCk1xuIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA1OgogICAgICAgICAgICBzY2FuZigiJWxmIiwgJm51bSk7CgkJCXByaW50ZigiZGF0YTolbGZcbiIsbnVtKTsKICAgICAgICAgICAgcHVzaChudW0pOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDk6CgkJCWlzRW5kID0gMTsKICAgICAgICB9CglpZiAoaXNFbmQgPT0gMSkKCQlwcmludGYoIlxuIik7CgkJYnJlYWs7CiAgICB9CgoJYW5zd2VyKCk7CgkKCXJldHVybiAwOwoKfQoKdm9pZCBwdXNoKGRvdWJsZSB2YWx1ZSkKewogICAgaWYgKCFpc0Z1bGwoKSkgCgl7CiAgICAgICAgc3RhY2tbc3ArK10gPSB2YWx1ZTsKICAgIH0gCgllbHNlIAoJewogICAgICAgIHByaW50Zigi44K544K/44OD44Kv44GM5rqA5p2v44Gn5YWl44KK44G+44Gb44KT44Gn44GX44GfXG4iKTsKICAgIH0KfQoKZG91YmxlIHBvcCh2b2lkKQp7CiAgICBpZiAoIWlzRW1wdHkoKSkgCgl7CiAgICAgICAgcmV0dXJuIHN0YWNrWy0tc3BdOwogICAgfSAKCWVsc2UgCgl7CiAgICAgICAgcHJpbnRmKCLjgrnjgr/jg4Pjgq/jgYznqbrjgaflj5bjgorlh7rjgZvjgb7jgZvjgpPjgafjgZfjgZ9cbiIpOwogICAgICAgIHJldHVybiAwLjA7CiAgICB9Cn0KCmludCBpc0Z1bGwodm9pZCkKewogICAgcmV0dXJuIHNwID49IFNJWkU7Cn0KCmludCBpc0VtcHR5KHZvaWQpCnsKICAgIHJldHVybiBzcCA8PSAwOwp9Cgp2b2lkIGFuc3dlcih2b2lkKQp7CiAgICBpZiAoIWlzRW1wdHkoKSkgCgl7CiAgICAgICAgcHJpbnRmKCJhbnN3ZXI6ICVsZlxuIiwgc3RhY2tbc3AgLSAxXSk7CiAgICB9IAoJZWxzZSAKCXsKICAgICAgICBwcmludGYoIuOCueOCv+ODg+OCr+OBjOepuuOBp+S9leOCguWPluOCiuWHuuOBm+OBvuOBm+OCk+OBp+OBl+OBn1xuIik7CiAgICB9Cn0KCnZvaWQgcmVzZXQodm9pZCkKewogICAgc3AgPSAwOwp9Cg==