#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 date;
printf("1:足し算 2:引き算 3:掛け算 4:割り算 5:データ入力 9:計算結果");
if(resp==9) break;
switch(resp){
push(date); break;
case 1: date=pop()+pop(); push(date); break;
case 2: date=pop(); date=pop()-date; push(date); break;
case 3: date=pop()*pop(); push(date); break;
case 4: date=pop(); date=pop()/date; push(date); break;
}
}
answer();
return 0;
}
void push(double value)
{
if(isFull()){
}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)
{
}
void reset(void)
{
int i;
for(i=0; i<10; i++){
stack[i]=0;
}
}
I2luY2x1ZGU8c3RkaW8uaD4KCiNkZWZpbmUgU0laRSAxMApkb3VibGUgc3RhY2tbU0laRV07CmludCBzcDsKCnZvaWQgcHVzaChkb3VibGUgdmFsdWUpOwpkb3VibGUgcG9wKHZvaWQpOwppbnQgaXNGdWxsKHZvaWQpOwppbnQgaXNFbXB0eSh2b2lkKTsKdm9pZCBhbnN3ZXIodm9pZCk7CnZvaWQgcmVzZXQodm9pZCk7CgppbnQgbWFpbih2b2lkKQp7CgkKICAgIHJlc2V0KCk7CiB3aGlsZSgxKXsKIAlpbnQgcmVzcDsKIAlkb3VibGUgZGF0ZTsKICBwcmludGYoIjE66Laz44GX566X44CAMjrlvJXjgY3nrpfjgIAzOuaOm+OBkeeulyA0OuWJsuOCiueulyA1OuODh+ODvOOCv+WFpeWKmyA5OuioiOeul+e1kOaenCIpOwogICBzY2FuZigiJWQiLCAmcmVzcCk7CiAgIAogICBpZihyZXNwPT05KSBicmVhazsKICAgCiAgIHN3aXRjaChyZXNwKXsKICAgCWNhc2UgNTogcHJpbnRmKCLjg4fjg7zjgr/jgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYTjgIIiKTsgIHNjYW5mKCIlbGYiLCAmZGF0ZSk7CiAgIAkgICAgICAgIHB1c2goZGF0ZSk7IGJyZWFrOwogICAJY2FzZSAxOiBkYXRlPXBvcCgpK3BvcCgpOyBwdXNoKGRhdGUpOyBicmVhazsKICAgCWNhc2UgMjogZGF0ZT1wb3AoKTsgIGRhdGU9cG9wKCktZGF0ZTsgcHVzaChkYXRlKTsgYnJlYWs7CiAgIAljYXNlIDM6IGRhdGU9cG9wKCkqcG9wKCk7IHB1c2goZGF0ZSk7IGJyZWFrOwogICAJY2FzZSA0OiBkYXRlPXBvcCgpOyAgZGF0ZT1wb3AoKS9kYXRlOyBwdXNoKGRhdGUpOyBicmVhazsKICAgfQogfSAKICBhbnN3ZXIoKTsKICAKICByZXR1cm4gMDsKIH0KIHZvaWQgcHVzaChkb3VibGUgdmFsdWUpCiB7CiAJaWYoaXNGdWxsKCkpewogCQlwcmludGYoIuOCueOCv+ODg+OCr+OBjOa6gOadr+OBp+WFpeOCiuOBvuOBm+OCk+OBp+OBl+OBn1xuIik7CiAJfWVsc2V7CiAJCXN0YWNrW3NwKytdPXZhbHVlOwogCX0KIH0KZG91YmxlIHBvcCh2b2lkKQp7CglpZihpc0VtcHR5KCkpewoJCXByaW50Zigi44K544K/44OD44Kv44GM56m644Gn5Y+W44KK5Ye644Gb44G+44Gb44KT44Gn44GX44GfXG4iKTsKCQlyZXR1cm4gMDsKCX1lbHNlewoJCXJldHVybiBzdGFja1stLXNwXTsKCX0KfQppbnQgaXNGdWxsKHZvaWQpCnsKCWlmKHNwPj1TSVpFKXsKCQlyZXR1cm4gMTsKCX1lbHNlewoJCXJldHVybiAwOwoJfQp9CmludCBpc0VtcHR5KHZvaWQpCnsKCWlmKHNwPD0wKXsKCQlyZXR1cm4gMTsKCX1lbHNlewoJCXJldHVybiAwOwoJfQp9CnZvaWQgYW5zd2VyKHZvaWQpCnsKCXByaW50ZigiXG7oqIjnrpfntZDmnpw6JWxmIiwgcG9wKCkpOwp9CiAgIHZvaWQgcmVzZXQodm9pZCkKICAgewogICAJaW50IGk7CiAgIAlmb3IoaT0wOyBpPDEwOyBpKyspewogICAJCXN0YWNrW2ldPTA7CiAgIAl9CiAgIH0=