#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();
sp=2;
stack[0]=2;
stack[1]=3;
int resp;
double a,b,c;
while(1){
printf("1:足し算 2:引き算 3:掛け算 4:割り算 5:データ入力 9:計算結果の表示\n"); if (scanf("%d", &resp
) != 1) break; if(!resp) break;
switch(resp){
b=pop();
a=pop();
push(a+b);
break;
b=pop();
a=pop();
push(a-b);
break;
b=pop();
a=pop();
push(a*b);
break;
b=pop();
a=pop();
push(a/b);
break;
push(c);
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("answer:%lf\n", stack
[sp
- 1]); }
}
void reset(void){
sp = 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2RlZmluZSBTSVpFIDEwCmRvdWJsZSBzdGFja1tTSVpFXTsKaW50IHNwOwp2b2lkIHB1c2goZG91YmxlIHZhbHVlKTsKZG91YmxlIHBvcCh2b2lkKTsKaW50IGlzRnVsbCh2b2lkKTsKaW50IGlzRW1wdHkodm9pZCk7CnZvaWQgYW5zd2VyKHZvaWQpOwp2b2lkIHJlc2V0KHZvaWQpOwppbnQgbWFpbih2b2lkKQp7CnJlc2V0KCk7CnNwPTI7CnN0YWNrWzBdPTI7CnN0YWNrWzFdPTM7CgppbnQgcmVzcDsKZG91YmxlIGEsYixjOwp3aGlsZSgxKXsKCXByaW50ZigiMTrotrPjgZfnrpcgMjrlvJXjgY3nrpcgMzrmjpvjgZHnrpcgNDrlibLjgornrpcgNTrjg4fjg7zjgr/lhaXlipsgOTroqIjnrpfntZDmnpzjga7ooajnpLpcbiIpOwoJCWlmIChzY2FuZigiJWQiLCAmcmVzcCkgIT0gMSkgYnJlYWs7CgkJaWYoIXJlc3ApIGJyZWFrOwoJCQoJCXN3aXRjaChyZXNwKXsKCQkJY2FzZSAxOnByaW50Zigi6Laz44GX566XXG4iKTsKCQkJYj1wb3AoKTsKCQkJcHJpbnRmKCIlbGZcbiIsYik7CgkJCWE9cG9wKCk7CgkJCXByaW50ZigiJWxmXG4iLGEpOwoJCQlwdXNoKGErYik7CgkJCWJyZWFrOwoJCQljYXNlIDI6cHJpbnRmKCLlvJXjgY3nrpdcbiIpOwoJCQliPXBvcCgpOwoJCQlhPXBvcCgpOwoJCQlwdXNoKGEtYik7CgkJCWJyZWFrOwoJCQljYXNlIDM6cHJpbnRmKCIJ5o6b44GR566XXG4iKTsKCQkJYj1wb3AoKTsKCQkJYT1wb3AoKTsKCQkJcHVzaChhKmIpOwoJCQlicmVhazsKCQkJY2FzZSA0OnByaW50Zigi5Ymy44KK566XXG4iKTsKCQkJYj1wb3AoKTsKCQkJYT1wb3AoKTsKCQkJcHVzaChhL2IpOwoJCQlicmVhazsKCQkJY2FzZSA1OnByaW50Zigi44OH44O844K/5YWl5YqbIik7CgkJCXNjYW5mKCIlZCIsJmMpOwoJCQlwdXNoKGMpOwoJCQlicmVhazsKCQl9CgkJcHJpbnRmKCIlZFxuIixzcCk7CglhbnN3ZXIoKTsKCXJldHVybiAwOwp9Cn0KCnZvaWQgcHVzaChkb3VibGUgdmFsdWUpewoJaWYgKCFpc0Z1bGwoKSl7CiAgICAgICAgc3RhY2tbc3BdID0gdmFsdWU7CiAgICAgICAgc3ArKzsKICAgIH0KfQpkb3VibGUgcG9wKHZvaWQpewoJaWYgKCFpc0VtcHR5KCkpIHsKICAgICAgICBzcC0tOwogICAgICAgIHJldHVybiBzdGFja1tzcF07CiAgICB9CiAgICByZXR1cm4gMDsKfQppbnQgaXNGdWxsKHZvaWQpewoJaWYgKHNwID49IFNJWkUpIHsKICAgICAgICByZXR1cm4gMTsKICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9Cn0KaW50IGlzRW1wdHkodm9pZCl7CglpZiAoc3AgPT0gMCkgewogICAgICAgIHJldHVybiAxOwogICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gMDsKICAgIH0KfQp2b2lkIGFuc3dlcih2b2lkKXsKCWlmICghaXNFbXB0eSgpKSB7CiAgICAgICAgcHJpbnRmKCJhbnN3ZXI6JWxmXG4iLCBzdGFja1tzcCAtIDFdKTsKICAgIH0KfQp2b2lkIHJlc2V0KHZvaWQpewoJc3AgPSAwOwp9