#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 cal1,cal2, date;
reset();
while(1){
printf("1:+ 2:- 3:* 4:/ 5:データ入力 9:結果表示\n"); switch(resp){
case 1:
cal1 = pop();
cal2 = pop();
push(cal2+cal1);
break;
case 2:
cal1 = pop();
cal2 = pop();
push(cal2-cal1);
break;
case 3:
cal1 = pop();
cal2 = pop();
push(cal2*cal1);
break;
case 4:
cal1 = pop();
cal2 = pop();
push(cal2/cal1);
break;
case 5:
push(date);
break;
case 9:
answer();
return 0;
}
}
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)
{
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("計算結果 = %.2f\n", stack
[sp
-1]); }
}
void reset(void)
{
sp = 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiAKI2RlZmluZSBTSVpFIDEwCmRvdWJsZSBzdGFja1tTSVpFXTsKaW50IHNwOwogCnZvaWQgcHVzaChkb3VibGUgdmFsdWUpOwpkb3VibGUgcG9wKHZvaWQpOwppbnQgaXNGdWxsKHZvaWQpOwppbnQgaXNFbXB0eSh2b2lkKTsKdm9pZCBhbnN3ZXIodm9pZCk7CnZvaWQgcmVzZXQodm9pZCk7CiAKaW50IG1haW4odm9pZCkKewogICAgaW50IHJlc3A7CiAgICBkb3VibGUgY2FsMSxjYWwyLCBkYXRlOwogICAgcmVzZXQoKTsgCiAgICB3aGlsZSgxKXsKICAgIHByaW50ZigiMTorIDI6LSAzOiogNDovIDU644OH44O844K/5YWl5YqbIDk657WQ5p6c6KGo56S6XG4iKTsKICAgIHNjYW5mKCIlZCIsICZyZXNwKTsgCiAgICBzd2l0Y2gocmVzcCl7CiAgICBjYXNlIDE6CiAgICBjYWwxID0gcG9wKCk7CiAgICBjYWwyID0gcG9wKCk7CiAgICBwdXNoKGNhbDIrY2FsMSk7CiAgICBicmVhazsKIAogICAgY2FzZSAyOgogICAgY2FsMSA9IHBvcCgpOwogICAgY2FsMiA9IHBvcCgpOwogICAgcHVzaChjYWwyLWNhbDEpOwogICAgYnJlYWs7CiAKICAgIGNhc2UgMzoKICAgIGNhbDEgPSBwb3AoKTsKICAgIGNhbDIgPSBwb3AoKTsKICAgIHB1c2goY2FsMipjYWwxKTsKICAgIGJyZWFrOwogCiAgICBjYXNlIDQ6CiAgICBjYWwxID0gcG9wKCk7CiAgICBjYWwyID0gcG9wKCk7CiAgICBwdXNoKGNhbDIvY2FsMSk7CiAgICBicmVhazsKIAogICAgY2FzZSA1OgogICAgcHJpbnRmKCLjg4fjg7zjgr89Iik7CiAgICBzY2FuZigiJWxmIiwgJmRhdGUpOwogICAgcHVzaChkYXRlKTsKICAgIGJyZWFrOwogCiAgICBjYXNlIDk6CiAgICBhbnN3ZXIoKTsKICAgIHJldHVybiAwOwogICAgfQogICAgfQogICAgCiAgICBhbnN3ZXIoKTsKIAogICAgcmV0dXJuIDA7Cn0KIAp2b2lkIHB1c2goZG91YmxlIHZhbHVlKQp7CiAgICBpZihpc0Z1bGwoKSl7CiAgICBwcmludGYoIuOCueOCv+ODg+OCr+OBjOa6gOadr+OBp+OBmVxuIik7CiAgICByZXR1cm47CiAgICB9CiAKICAgIHN0YWNrW3NwXSA9IHZhbHVlOwogICAgc3ArKzsKfQogCmRvdWJsZSBwb3Aodm9pZCkKewogICAgaWYoaXNFbXB0eSgpKXsKICAgIHByaW50Zigi44K544K/44OD44Kv44GM56m644Gn44GZXG4iKTsKICAgIHJldHVybiAwOwogICAgfQogCiAgICBzcC0tOwogICAgcmV0dXJuIHN0YWNrW3NwXTsKfQogCmludCBpc0Z1bGwodm9pZCkKewogICAgaWYoc3AgPj0gU0laRSl7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9ZWxzZXsKICAgICAgICByZXR1cm4gMDsKICAgIH0KfQogCmludCBpc0VtcHR5KHZvaWQpCnsKICAgIGlmKHNwID09IDApewogICAgICAgIHJldHVybiAxOwogICAgfWVsc2V7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9Cn0KIAp2b2lkIGFuc3dlcih2b2lkKQp7CiAgICBpZihpc0VtcHR5KCkpewogICAgcHJpbnRmKCLjg4fjg7zjgr/jgYzjgYLjgorjgb7jgZvjgpNcbiIpOwogICAgfWVsc2V7CiAgICBwcmludGYoIuioiOeul+e1kOaenCA9ICUuMmZcbiIsIHN0YWNrW3NwLTFdKTsKICAgIH0KfQogCnZvaWQgcmVzZXQodm9pZCkKewogICAgc3AgPSAwOwp9Cg==