#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 op;
switch(op){
case 1: {
double a = pop();
double b = pop();
push(a + b);
break;
}
case 2: {
double a = pop();
double b = pop();
push(b - a);
break;
}
case 3: {
double a = pop();
double b = pop();
push(b * a);
break;
}
case 4: {
double a = pop();
double b = pop();
push(b / a);
break;
}
case 5: {
double d;
push(d);
break;
}
case 9:
break;
default:
}
if(op==9) break;
}
answer();
return 0;
}
void push(double value) {
if (sp < SIZE) {
stack[sp++] = value;
} else {
}
}
double pop(void) {
if (sp > 0) {
return stack[--sp];
} else {
return 0.0;
}
}
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+CgojZGVmaW5lIFNJWkUgMTAKZG91YmxlIHN0YWNrW1NJWkVdOwppbnQgc3A7Cgp2b2lkIHB1c2goZG91YmxlIHZhbHVlKTsKZG91YmxlIHBvcCh2b2lkKTsKaW50IGlzRnVsbCh2b2lkKTsKaW50IGlzRW1wdHkodm9pZCk7CnZvaWQgYW5zd2VyKHZvaWQpOwp2b2lkIHJlc2V0KHZvaWQpOwoKaW50IG1haW4odm9pZCkgewogICAgcmVzZXQoKTsKCiAgICB3aGlsZSAoMSkgewogICAgCWludCBvcDsKICAgIAlzY2FuZigiJWQiLCZvcCk7CiAgICAJc3dpdGNoKG9wKXsKICAgICAgICAgICAgY2FzZSAxOiB7CiAgICAgICAgICAgICAgICBkb3VibGUgYSA9IHBvcCgpOwogICAgICAgICAgICAgICAgZG91YmxlIGIgPSBwb3AoKTsKICAgICAgICAgICAgICAgIHB1c2goYSArIGIpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FzZSAyOiB7CiAgICAgICAgICAgICAgICBkb3VibGUgYSA9IHBvcCgpOwogICAgICAgICAgICAgICAgZG91YmxlIGIgPSBwb3AoKTsKICAgICAgICAgICAgICAgIHB1c2goYiAtIGEpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FzZSAzOiB7CiAgICAgICAgICAgICAgICBkb3VibGUgYSA9IHBvcCgpOwogICAgICAgICAgICAgICAgZG91YmxlIGIgPSBwb3AoKTsKICAgICAgICAgICAgICAgIHB1c2goYiAqIGEpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FzZSA0OiB7CiAgICAgICAgICAgICAgICBkb3VibGUgYSA9IHBvcCgpOwogICAgICAgICAgICAgICAgZG91YmxlIGIgPSBwb3AoKTsKICAgICAgICAgICAgICAgIHB1c2goYiAvIGEpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FzZSA1OiB7CiAgICAgICAgICAgICAgICBkb3VibGUgZDsKICAgICAgICAgICAgICAgIHNjYW5mKCIlbGYiLCZkKTsKICAgICAgICAgICAgICAgIHB1c2goZCk7CiAgICAgICAgICAgICAgICBwcmludGYoImRhdGE6JWZcbiIsZCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXNlIDk6CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgCXByaW50Zigi5LiN5q2j44Gq5YWl5Yqb44Gn44GZXG4iKTsKICAgIAl9CiAgICAJCiAgICAJaWYob3A9PTkpIGJyZWFrOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBhbnN3ZXIoKTsKICAgICAgICByZXR1cm4gMDsKfQoKdm9pZCBwdXNoKGRvdWJsZSB2YWx1ZSkgewogICAgaWYgKHNwIDwgU0laRSkgewogICAgICAgIHN0YWNrW3NwKytdID0gdmFsdWU7CiAgICB9IGVsc2UgewogICAgICAgIHByaW50Zigi44K544K/44OD44Kv44GM5rqA5p2v44Gn44GZ44CCXG4iKTsKICAgIH0KfQoKZG91YmxlIHBvcCh2b2lkKSB7CiAgICBpZiAoc3AgPiAwKSB7CiAgICAgICAgcmV0dXJuIHN0YWNrWy0tc3BdOwogICAgfSBlbHNlIHsKICAgICAgICBwcmludGYoIuOCueOCv+ODg+OCr+OBjOepuuOBp+OBmeOAglxuIik7CiAgICAgICAgcmV0dXJuIDAuMDsKICAgIH0KfQoKaW50IGlzRnVsbCh2b2lkKSB7CiAgICByZXR1cm4gc3AgPT0gU0laRTsKfQoKaW50IGlzRW1wdHkodm9pZCkgewogICAgcmV0dXJuIHNwID09IDA7Cn0KCnZvaWQgYW5zd2VyKHZvaWQpIHsKICAgIGlmICghaXNFbXB0eSgpKSB7CiAgICAgICAgcHJpbnRmKCLoqIjnrpfntZDmnpw6ICVmXG4iLCBzdGFja1tzcCAtIDFdKTsKICAgIH0gZWxzZSB7CiAgICAgICAgcHJpbnRmKCLjgrnjgr/jg4Pjgq/jgavlgKTjgYzjgYLjgorjgb7jgZvjgpPjgIJcbiIpOwogICAgfQp9Cgp2b2lkIHJlc2V0KHZvaWQpIHsKICAgIHNwID0gMDsKfQ==