#include <stdio.h>
#define SIZE 100
double stack[SIZE];
int sp = 0; // スタックポインタ
// ===== スタック関連の関数 =====
// スタックを空にする
void reset(void) {
sp = 0;
}
// スタックが満杯かどうか
int isFull(void) {
return sp >= SIZE;
}
// スタックが空かどうか
int isEmpty(void) {
return sp == 0;
}
// データをスタックに入れる
void push(double x) {
if (isFull()) {
return;
}
stack[sp++] = x;
}
// データをスタックから取り出す
double pop(void) {
if (isEmpty()) {
return 0.0;
}
return stack[--sp];
}
// 結果を表示
void answer(void) {
if (isEmpty()) {
} else {
printf("answer:%lf\n", stack
[sp
- 1]); }
}
// ===== メイン関数 =====
int main(void) {
int n;
double a, b, x;
while (2) {
switch (n) {
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(x);
break;
case 9: // 結果表示
answer();
return 0;
default:
}
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNJWkUgMTAwCgpkb3VibGUgc3RhY2tbU0laRV07CmludCBzcCA9IDA7ICAvLyDjgrnjgr/jg4Pjgq/jg53jgqTjg7Pjgr8KCi8vID09PT09IOOCueOCv+ODg+OCr+mWoumAo+OBrumWouaVsCA9PT09PQoKLy8g44K544K/44OD44Kv44KS56m644Gr44GZ44KLCnZvaWQgcmVzZXQodm9pZCkgewogICAgc3AgPSAwOwp9CgovLyDjgrnjgr/jg4Pjgq/jgYzmuoDmna/jgYvjganjgYbjgYsKaW50IGlzRnVsbCh2b2lkKSB7CiAgICByZXR1cm4gc3AgPj0gU0laRTsKfQoKLy8g44K544K/44OD44Kv44GM56m644GL44Gp44GG44GLCmludCBpc0VtcHR5KHZvaWQpIHsKICAgIHJldHVybiBzcCA9PSAwOwp9CgovLyDjg4fjg7zjgr/jgpLjgrnjgr/jg4Pjgq/jgavlhaXjgozjgosKdm9pZCBwdXNoKGRvdWJsZSB4KSB7CiAgICBpZiAoaXNGdWxsKCkpIHsKICAgICAgICBwcmludGYoIlN0YWNrIG92ZXJmbG93IVxuIik7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgc3RhY2tbc3ArK10gPSB4Owp9CgovLyDjg4fjg7zjgr/jgpLjgrnjgr/jg4Pjgq/jgYvjgonlj5bjgorlh7rjgZkKZG91YmxlIHBvcCh2b2lkKSB7CiAgICBpZiAoaXNFbXB0eSgpKSB7CiAgICAgICAgcHJpbnRmKCJTdGFjayB1bmRlcmZsb3chXG4iKTsKICAgICAgICByZXR1cm4gMC4wOwogICAgfQogICAgcmV0dXJuIHN0YWNrWy0tc3BdOwp9CgovLyDntZDmnpzjgpLooajnpLoKdm9pZCBhbnN3ZXIodm9pZCkgewogICAgaWYgKGlzRW1wdHkoKSkgewogICAgICAgIHByaW50ZigiU3RhY2sgaXMgZW1wdHkuXG4iKTsKICAgIH0gZWxzZSB7CiAgICAgICAgcHJpbnRmKCJhbnN3ZXI6JWxmXG4iLCBzdGFja1tzcCAtIDFdKTsKICAgIH0KfQoKLy8gPT09PT0g44Oh44Kk44Oz6Zai5pWwID09PT09CmludCBtYWluKHZvaWQpIHsKICAgIGludCBuOwogICAgZG91YmxlIGEsIGIsIHg7CgoKICAgIHdoaWxlICgyKSB7CiAgICAgICAgc2NhbmYoIiVkIiwgJm4pOwoKICAgICAgICBzd2l0Y2ggKG4pIHsKICAgICAgICAgICAgY2FzZSAxOiAvLyArCiAgICAgICAgICAgICAgICBiID0gcG9wKCk7CiAgICAgICAgICAgICAgICBhID0gcG9wKCk7CiAgICAgICAgICAgICAgICBwdXNoKGEgKyBiKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAyOiAvLyAtCiAgICAgICAgICAgICAgICBiID0gcG9wKCk7CiAgICAgICAgICAgICAgICBhID0gcG9wKCk7CiAgICAgICAgICAgICAgICBwdXNoKGEgLSBiKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAzOiAvLyAqCiAgICAgICAgICAgICAgICBiID0gcG9wKCk7CiAgICAgICAgICAgICAgICBhID0gcG9wKCk7CiAgICAgICAgICAgICAgICBwdXNoKGEgKiBiKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSA0OiAvLyAvCiAgICAgICAgICAgICAgICBiID0gcG9wKCk7CiAgICAgICAgICAgICAgICBhID0gcG9wKCk7CiAgICAgICAgICAgICAgICBwdXNoKGEgLyBiKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSA1OiAvLyDjg4fjg7zjgr/lhaXlipsKICAgICAgICAgICAgICAgIHNjYW5mKCIlbGYiLCAmeCk7CiAgICAgICAgICAgICAgICBwcmludGYoImRhdGE6JWxmXG4iLCB4KTsKICAgICAgICAgICAgICAgIHB1c2goeCk7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgOTogLy8g57WQ5p6c6KGo56S6CiAgICAgICAgICAgICAgICBhbnN3ZXIoKTsKICAgICAgICAgICAgICAgIHJldHVybiAwOwoKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHByaW50ZigiVW5rbm93biBjb21tYW5kLlxuIik7CiAgICAgICAgfQogICAgfQp9Cg==