#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:結果表示 0:終了\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;
}
CiNpbmNsdWRlIDxzdGRpby5oPgoKI2RlZmluZSBTSVpFIDEwCmRvdWJsZSBzdGFja1tTSVpFXTsKaW50IHNwOwoKdm9pZCBwdXNoKGRvdWJsZSB2YWx1ZSk7CmRvdWJsZSBwb3Aodm9pZCk7CmludCBpc0Z1bGwodm9pZCk7CmludCBpc0VtcHR5KHZvaWQpOwp2b2lkIGFuc3dlcih2b2lkKTsKdm9pZCByZXNldCh2b2lkKTsKCmludCBtYWluKHZvaWQpCnsKICAgIGludCByZXNwOwogICAgZG91YmxlIGEsIGIsIGRhdGU7CgogICAgcmVzZXQoKTsKCiAgICB3aGlsZSgxKXsKICAgIHByaW50ZigiMTorIDI6LSAzOiogNDovIDU644OH44O844K/5YWl5YqbIDk657WQ5p6c6KGo56S6IDA657WC5LqGXG4iKTsKCiAgICBpZihzY2FuZigiJWQiLCAmcmVzcCkgIT0gMSl7CiAgICBwcmludGYoIuaVsOWApOOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhFxuIik7CiAgICBicmVhazsKICAgIH0KCiAgICBpZihyZXNwID09IDApIGJyZWFrOwoKICAgIHN3aXRjaChyZXNwKXsKICAgIGNhc2UgMToKICAgIGIgPSBwb3AoKTsKICAgIGEgPSBwb3AoKTsKICAgIHB1c2goYSArIGIpOwogICAgYnJlYWs7CgogICAgY2FzZSAyOgogICAgYiA9IHBvcCgpOwogICAgYSA9IHBvcCgpOwogICAgcHVzaChhIC0gYik7CiAgICBicmVhazsKCiAgICBjYXNlIDM6CiAgICBiID0gcG9wKCk7CiAgICBhID0gcG9wKCk7CiAgICBwdXNoKGEgKiBiKTsKICAgIGJyZWFrOwoKICAgIGNhc2UgNDoKICAgIGIgPSBwb3AoKTsKICAgIGEgPSBwb3AoKTsKICAgIHB1c2goYSAvIGIpOwogICAgYnJlYWs7CgogICAgY2FzZSA1OgogICAgcHJpbnRmKCLmlbDlgKTjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYTvvJoiKTsKICAgIHNjYW5mKCIlbGYiLCAmZGF0ZSk7CiAgICBwdXNoKGRhdGUpOwogICAgYnJlYWs7CgogICAgY2FzZSA5OgogICAgYW5zd2VyKCk7CiAgICBicmVhazsKICAgICAgICB9CiAgICB9CgogICAgYW5zd2VyKCk7CgogICAgcmV0dXJuIDA7Cn0KCnZvaWQgcHVzaChkb3VibGUgdmFsdWUpCnsKICAgIGlmKGlzRnVsbCgpKXsKICAgIHByaW50Zigi44K544K/44OD44Kv44GM5rqA5p2v44Gn44GZXG4iKTsKICAgIHJldHVybjsKICAgIH0KCiAgICBzdGFja1tzcF0gPSB2YWx1ZTsKICAgIHNwKys7Cn0KCmRvdWJsZSBwb3Aodm9pZCkKewogICAgaWYoaXNFbXB0eSgpKXsKICAgIHByaW50Zigi44K544K/44OD44Kv44GM56m644Gn44GZXG4iKTsKICAgIHJldHVybiAwOwogICAgfQoKICAgIHNwLS07CiAgICByZXR1cm4gc3RhY2tbc3BdOwp9CgppbnQgaXNGdWxsKHZvaWQpCnsKICAgIHJldHVybiBzcCA+PSBTSVpFOwp9CgppbnQgaXNFbXB0eSh2b2lkKQp7CiAgICByZXR1cm4gc3AgPD0gMDsKfQoKdm9pZCBhbnN3ZXIodm9pZCkKewogICAgaWYoIWlzRW1wdHkoKSl7CiAgICBwcmludGYoIuioiOeul+e1kOaenO+8miVmXG4iLCBzdGFja1tzcCAtIDFdKTsKICAgIH0KICAgIGVsc2V7CiAgICBwcmludGYoIuOCueOCv+ODg+OCr+OBjOepuuOBp+OBmVxuIik7CiAgICB9Cn0KCnZvaWQgcmVzZXQodm9pZCkKewogICAgc3AgPSAwOwp9Cg==