#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 flag=0;
int main(void)
{ reset();
while (1) {
int resp;
double data;
printf("1:addition 2:subtraction 3:multiplication 4:division 5:push 9:indication \n");
if (resp==0) break;
switch (resp)
{ case 1:
if (isEmpty
()) { printf("エラー: スタックが空です。\n");} else { double b = pop();
if (isEmpty
()) { printf("エラー: スタックに値が不足しています。\n"); push
(b
); } else { double a = pop(); push(a + b); } } break;
case 2: if (isEmpty
()) { printf("エラー: スタックが空です。\n");} else { double b = pop();
if (isEmpty
()) { printf("エラー: スタックに値が不足しています。\n"); push
(b
); } else { double a = pop(); push(a - b); } } break;
case 3:
if (isEmpty
()) { printf("エラー: スタックが空です。\n"); } else { double b = pop();
if (isEmpty
()) { printf("エラー: スタックに値が不足しています。\n"); push
(b
); } else { double a = pop(); push(a * b); } } break;
case 4:
if (isEmpty
()) { printf("エラー: スタックが空です。\n"); } else { double b = pop();
if (isEmpty
()) { printf("エラー: スタックに値が不足しています。\n"); push
(b
); } else { double a = pop();
if (b
== 0) { printf("エラー。\n"); push
(a
); push
(b
); } else { push(a / b); } } } break;
case 5:
push(data);
break;
case 9:
answer();
flag=1;
break;
}
if(flag==1) break;
}
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 1;}
else { return 0; } }
int isEmpty(void)
{ if(sp<=0) { return 1; }
else { return 0; }}
void answer(void)
{ if (isEmpty())
else { printf("%lf",pop
()); } }
void reset(void)
{ sp = 0; }
I2luY2x1ZGUgPHN0ZGlvLmg+CiNkZWZpbmUgU0laRSAxMApkb3VibGUgc3RhY2tbU0laRV07CmludCBzcDsKdm9pZCBwdXNoKGRvdWJsZSB2YWx1ZSk7IApkb3VibGUgcG9wKHZvaWQpOyAgCmludCBpc0Z1bGwodm9pZCk7IAppbnQgaXNFbXB0eSh2b2lkKTsgCnZvaWQgYW5zd2VyKHZvaWQpOyAKdm9pZCByZXNldCh2b2lkKTsgCmludCBmbGFnPTA7CmludCBtYWluKHZvaWQpCnsgICByZXNldCgpOwogICAgd2hpbGUgKDEpIHsKICAgICBpbnQgcmVzcDsKICAgICBkb3VibGUgZGF0YTsKICAgICBwcmludGYoIjE6YWRkaXRpb24gIDI6c3VidHJhY3Rpb24gIDM6bXVsdGlwbGljYXRpb24gIDQ6ZGl2aXNpb24gIDU6cHVzaCAgOTppbmRpY2F0aW9uIFxuIik7CiAgICAgc2NhbmYoIiVkIiwmcmVzcCk7CgogICAgICBpZiAocmVzcD09MCkgYnJlYWs7CiAgICAgIHN3aXRjaCAocmVzcCkKICAgICAgeyAgY2FzZSAxOgogICAgICAgIGlmIChpc0VtcHR5KCkpIHsgcHJpbnRmKCLjgqjjg6njg7w6IOOCueOCv+ODg+OCr+OBjOepuuOBp+OBmeOAglxuIik7fQogICAgICAgIGVsc2UgeyAgIGRvdWJsZSBiID0gcG9wKCk7CiAgICAgICAgaWYgKGlzRW1wdHkoKSkgeyBwcmludGYoIuOCqOODqeODvDog44K544K/44OD44Kv44Gr5YCk44GM5LiN6Laz44GX44Gm44GE44G+44GZ44CCXG4iKTsgcHVzaChiKTsgfQogICAgICAgICAgICAgZWxzZSB7IGRvdWJsZSBhID0gcG9wKCk7ICBwdXNoKGEgKyBiKTsgfSB9IGJyZWFrOwoKICAgICAgICBjYXNlIDI6ICBpZiAoaXNFbXB0eSgpKSB7IHByaW50Zigi44Ko44Op44O8OiDjgrnjgr/jg4Pjgq/jgYznqbrjgafjgZnjgIJcbiIpO30KICAgICAgICAgICBlbHNlIHsgZG91YmxlIGIgPSBwb3AoKTsKICAgICAgICAgICBpZiAoaXNFbXB0eSgpKSB7IHByaW50Zigi44Ko44Op44O8OiDjgrnjgr/jg4Pjgq/jgavlgKTjgYzkuI3otrPjgZfjgabjgYTjgb7jgZnjgIJcbiIpOyBwdXNoKGIpOyB9CiAgICAgICAgICAgICBlbHNlIHsgZG91YmxlIGEgPSBwb3AoKTsgcHVzaChhIC0gYik7IH0gfSAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgaWYgKGlzRW1wdHkoKSkgeyAgcHJpbnRmKCLjgqjjg6njg7w6IOOCueOCv+ODg+OCr+OBjOepuuOBp+OBmeOAglxuIik7IH0gCiAgICAgICAgICAgICAgICBlbHNlIHsgIGRvdWJsZSBiID0gcG9wKCk7CiAgICAgICAgICAgICAgICBpZiAoaXNFbXB0eSgpKSB7IHByaW50Zigi44Ko44Op44O8OiDjgrnjgr/jg4Pjgq/jgavlgKTjgYzkuI3otrPjgZfjgabjgYTjgb7jgZnjgIJcbiIpOyBwdXNoKGIpOyB9CiAgICAgICAgICAgICAgICAgZWxzZSB7IGRvdWJsZSBhID0gcG9wKCk7ICBwdXNoKGEgKiBiKTsgfSB9ICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgIGlmIChpc0VtcHR5KCkpIHsgcHJpbnRmKCLjgqjjg6njg7w6IOOCueOCv+ODg+OCr+OBjOepuuOBp+OBmeOAglxuIik7IH0KICAgICAgICAgICAgICAgIGVsc2UgeyBkb3VibGUgYiA9IHBvcCgpOwogICAgICAgICAgICAgICAgaWYgKGlzRW1wdHkoKSkgeyBwcmludGYoIuOCqOODqeODvDog44K544K/44OD44Kv44Gr5YCk44GM5LiN6Laz44GX44Gm44GE44G+44GZ44CCXG4iKTsgIHB1c2goYik7IH0KICAgICAgICAgICAgICAgIGVsc2UgeyAgZG91YmxlIGEgPSBwb3AoKTsKICAgICAgICAgICAgICAgIGlmIChiID09IDApIHsgIHByaW50Zigi44Ko44Op44O844CCXG4iKTsgIHB1c2goYSk7ICBwdXNoKGIpOyB9CiAgICAgICAgICAgICAgICBlbHNlIHsgcHVzaChhIC8gYik7IH0gfSB9ICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgIHByaW50ZigicHVzaDoiKTsKICAgICAgICAgICAgc2NhbmYoIiVsZiIsJmRhdGEpOwogICAgICAgICAgICBwdXNoKGRhdGEpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNhc2UgOToKICAgICAgICAgICAgICAgIGFuc3dlcigpOwogICAgICAgICAgICAgICAgZmxhZz0xOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZihmbGFnPT0xKSBicmVhazsKICAgIAkKICAgIH0KICAgICAgIHJldHVybiAwO30KCnZvaWQgcHVzaChkb3VibGUgdmFsdWUpIAp7ICBpZiAoaXNGdWxsKCkpIHsgcHJpbnRmKCLjgrnjgr/jg4Pjgq/jgYzmuoDmna/jgaflhaXjgorjgb7jgZvjgpPjgafjgZfjgZ/jgIJcbiIpOyB9CiAgIGVsc2UgeyAgc3RhY2tbc3ArK10gPSB2YWx1ZTsgfSB9Cgpkb3VibGUgcG9wKHZvaWQpIAp7ICBpZiAoaXNFbXB0eSgpKQp7ICAgcHJpbnRmKCLjgrnjgr/jg4Pjgq/jgYznqbrjgaflj5bjgorlh7rjgZvjgb7jgZvjgpPjgafjgZfjgZ/jgIJcbiIpOyByZXR1cm4gMDsgfQogZWxzZSB7ICByZXR1cm4gc3RhY2tbLS1zcF07IH0gfQogIAppbnQgaXNGdWxsKHZvaWQpIAp7IGlmKHNwPj1TSVpFKSAgeyByZXR1cm4gMTt9CmVsc2UgeyByZXR1cm4gMDsgfSB9CgppbnQgaXNFbXB0eSh2b2lkKQp7IGlmKHNwPD0wKSB7IHJldHVybiAxOyB9CmVsc2UgeyByZXR1cm4gMDsgfX0KCnZvaWQgYW5zd2VyKHZvaWQpIAp7ICBpZiAoaXNFbXB0eSgpKSAKeyAgcHJpbnRmKCLjgrnjgr/jg4Pjgq/jga/nqbrjgafjgZnjgIJcbiIpOyB9CiAgIGVsc2UgeyBwcmludGYoIiVsZiIscG9wKCkpOyB9IH0KICAgCnZvaWQgcmVzZXQodm9pZCkKeyAgc3AgPSAwOyAgfQ==