#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 resp;
double a, b, date;
reset();
while(1){
printf("1:+ 2:- 3:* 4:/ 5:データ入力 9:結果表示\n");
if(scanf("%d", &resp
) != 1){ break;
}
if(resp == 0) break;
switch(resp){
case 1:
b = pop();
a = pop();
push(a + b);
break;
case 2:
b = pop();
a = pop();
push(a - b);
break;
case 3:
b = pop();
a = pop();
push(a * b);
break;
case 4:
b = pop();
a = pop();
push(a / b);
break;
case 5:
push(date);
break;
case 9:
answer();
break;
}
}
answer();
return 0;
}
void push(double value)
{
if(isFull()){
return;
}
stack[sp] = value;
sp++;
}
double pop(void)
{
if(isEmpty()){
return 0;
}
sp--;
return stack[sp];
}
int isFull(void)
{
return sp >= SIZE;
}
int isEmpty(void)
{
return sp <= 0;
}
void answer(void)
{
if(!isEmpty()){
printf("計算結果:%f\n", stack
[sp
- 1]); }
else{
}
}
void reset(void)
{
sp = 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNJWkUgMTAKZG91YmxlIHN0YWNrW1NJWkVdOwppbnQgc3A7Cgp2b2lkIHB1c2goZG91YmxlIHZhbHVlKTsKZG91YmxlIHBvcCh2b2lkKTsKaW50IGlzRnVsbCh2b2lkKTsKaW50IGlzRW1wdHkodm9pZCk7CnZvaWQgYW5zd2VyKHZvaWQpOwp2b2lkIHJlc2V0KHZvaWQpOwoKaW50IG1haW4odm9pZCkKewogICAgaW50IHJlc3A7CiAgICBkb3VibGUgYSwgYiwgZGF0ZTsKCiAgICByZXNldCgpOwoKICAgIHdoaWxlKDEpewogICAgcHJpbnRmKCIxOisgMjotIDM6KiA0Oi8gNTrjg4fjg7zjgr/lhaXlipsgOTrntZDmnpzooajnpLpcbiIpOwoKICAgIGlmKHNjYW5mKCIlZCIsICZyZXNwKSAhPSAxKXsKICAgIHByaW50Zigi5pWw5YCk44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEXG4iKTsKICAgIGJyZWFrOwogICAgfQoKICAgIGlmKHJlc3AgPT0gMCkgYnJlYWs7CgogICAgc3dpdGNoKHJlc3ApewogICAgY2FzZSAxOgogICAgYiA9IHBvcCgpOwogICAgYSA9IHBvcCgpOwogICAgcHVzaChhICsgYik7CiAgICBicmVhazsKCiAgICBjYXNlIDI6CiAgICBiID0gcG9wKCk7CiAgICBhID0gcG9wKCk7CiAgICBwdXNoKGEgLSBiKTsKICAgIGJyZWFrOwoKICAgIGNhc2UgMzoKICAgIGIgPSBwb3AoKTsKICAgIGEgPSBwb3AoKTsKICAgIHB1c2goYSAqIGIpOwogICAgYnJlYWs7CgogICAgY2FzZSA0OgogICAgYiA9IHBvcCgpOwogICAgYSA9IHBvcCgpOwogICAgcHVzaChhIC8gYik7CiAgICBicmVhazsKCiAgICBjYXNlIDU6CiAgICBwcmludGYoIuaVsOWApOOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhO+8miIpOwogICAgc2NhbmYoIiVsZiIsICZkYXRlKTsKICAgIHB1c2goZGF0ZSk7CiAgICBicmVhazsKCiAgICBjYXNlIDk6CiAgICBhbnN3ZXIoKTsKICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KCiAgICBhbnN3ZXIoKTsKCiAgICByZXR1cm4gMDsKfQoKdm9pZCBwdXNoKGRvdWJsZSB2YWx1ZSkKewogICAgaWYoaXNGdWxsKCkpewogICAgcHJpbnRmKCLjgrnjgr/jg4Pjgq/jgYzmuoDmna/jgafjgZlcbiIpOwogICAgcmV0dXJuOwogICAgfQoKICAgIHN0YWNrW3NwXSA9IHZhbHVlOwogICAgc3ArKzsKfQoKZG91YmxlIHBvcCh2b2lkKQp7CiAgICBpZihpc0VtcHR5KCkpewogICAgcHJpbnRmKCLjgrnjgr/jg4Pjgq/jgYznqbrjgafjgZlcbiIpOwogICAgcmV0dXJuIDA7CiAgICB9CgogICAgc3AtLTsKICAgIHJldHVybiBzdGFja1tzcF07Cn0KCmludCBpc0Z1bGwodm9pZCkKewogICAgcmV0dXJuIHNwID49IFNJWkU7Cn0KCmludCBpc0VtcHR5KHZvaWQpCnsKICAgIHJldHVybiBzcCA8PSAwOwp9Cgp2b2lkIGFuc3dlcih2b2lkKQp7CiAgICBpZighaXNFbXB0eSgpKXsKICAgIHByaW50Zigi6KiI566X57WQ5p6c77yaJWZcbiIsIHN0YWNrW3NwIC0gMV0pOwogICAgfQogICAgZWxzZXsKICAgIHByaW50Zigi44K544K/44OD44Kv44GM56m644Gn44GZXG4iKTsKICAgIH0KfQoKdm9pZCByZXNldCh2b2lkKQp7CiAgICBzcCA9IDA7Cn0=