#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){
double data;
double cal1, cal2;
int resp;
if( resp == 9 ) break;
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;
push( data );
break;
}
}
answer();
return 0;
}
void push(double value)
{
if( isFull() ){
}else{
stack[sp++] = value;
}
}
double pop(void)
{
if( isEmpty() ){
printf("スタックが空で取り出せませんでした\n"); return 0;
}else{
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)
{
printf ("answer:%lf\n", stack
[0]); }
void reset(void)
{
while(!isEmpty())
pop();
}
I2luY2x1ZGU8c3RkaW8uaD4KCiNkZWZpbmUgU0laRSAxMApkb3VibGUgc3RhY2tbU0laRV07CmludCBzcDsKCnZvaWQgcHVzaChkb3VibGUgdmFsdWUpOwpkb3VibGUgcG9wKHZvaWQpOwppbnQgaXNGdWxsKHZvaWQpOwppbnQgaXNFbXB0eSh2b2lkKTsKdm9pZCBhbnN3ZXIodm9pZCk7CnZvaWQgcmVzZXQodm9pZCk7CgppbnQgbWFpbih2b2lkKQp7CiAgICByZXNldCgpOwogd2hpbGUoMSl7CiAgICAgICAgZG91YmxlIGRhdGE7CiAgICAgICAgZG91YmxlIGNhbDEsIGNhbDI7CiAgICAgICAgaW50IHJlc3A7CiAgICAKICAgICAgICBzY2FuZigiJWQiLCAmcmVzcCk7CgogICAgICAgIGlmKCByZXNwID09IDkgKSAgYnJlYWs7CgogICAgICAgIHN3aXRjaChyZXNwKXsKICAgICAgICAgICAgY2FzZSAxOiBjYWwxID0gcG9wKCk7CiAgICAgICAgICAgICAgICAgICAgY2FsMiA9IHBvcCgpOwogICAgICAgICAgICAgICAgICAgIHB1c2goIGNhbDIgKyBjYWwxICk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIDI6IGNhbDEgPSBwb3AoKTsKICAgICAgICAgICAgICAgICAgICBjYWwyID0gcG9wKCk7CiAgICAgICAgICAgICAgICAgICAgcHVzaCggY2FsMiAtIGNhbDEgKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgMzogY2FsMSA9IHBvcCgpOwogICAgICAgICAgICAgICAgICAgIGNhbDIgPSBwb3AoKTsKICAgICAgICAgICAgICAgICAgICBwdXNoKCBjYWwyICogY2FsMSApOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSA0OiBjYWwxID0gcG9wKCk7CiAgICAgICAgICAgICAgICAgICAgY2FsMiA9IHBvcCgpOwogICAgICAgICAgICAgICAgICAgIHB1c2goIGNhbDIgLyBjYWwxICk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIDU6IHByaW50ZigiZGF0YToiKTsgc2NhbmYoIiVsZiIsICZkYXRhKTsKICAgICAgICAgICAgICAgICAgICBwdXNoKCBkYXRhICk7CiAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIlbGZcbiIsIGRhdGEpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KCiAgICBhbnN3ZXIoKTsKCiAgICByZXR1cm4gMDsKfQp2b2lkIHB1c2goZG91YmxlIHZhbHVlKQp7CiAgICBpZiggaXNGdWxsKCkgKXsKICAgICAgICBwcmludGYoIuOCueOCv+ODg+OCr+OBjOa6gOadr+OBp+WFpeOCiuOBvuOBm+OCk+OBp+OBl+OBn1xuIik7CiAgICB9ZWxzZXsKICAgICAgICBzdGFja1tzcCsrXSA9IHZhbHVlOwogICAgfQp9Cgpkb3VibGUgcG9wKHZvaWQpCnsKICAgIGlmKCBpc0VtcHR5KCkgKXsKICAgICAgICBwcmludGYoIuOCueOCv+ODg+OCr+OBjOepuuOBp+WPluOCiuWHuuOBm+OBvuOBm+OCk+OBp+OBl+OBn1xuIik7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9ZWxzZXsKICAgICAgICByZXR1cm4gc3RhY2tbLS1zcF07CiAgICB9Cn0KCmludCBpc0Z1bGwodm9pZCkKewogICAgaWYoc3AgPj0gU0laRSl7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9ZWxzZXsKICAgICAgICByZXR1cm4gMDsKICAgIH0KfQoKaW50IGlzRW1wdHkodm9pZCkKewogICAgaWYoc3AgPD0gMCl7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9ZWxzZXsKICAgICAgICByZXR1cm4gMDsKICAgIH0KfQoKdm9pZCBhbnN3ZXIodm9pZCkKewogICAgcHJpbnRmICgiXG4iKTsKICAgIHByaW50ZiAoImFuc3dlcjolbGZcbiIsIHN0YWNrWzBdKTsKfQoKdm9pZCByZXNldCh2b2lkKQp7CiAgICB3aGlsZSghaXNFbXB0eSgpKQogICAgICAgIHBvcCgpOwp9Cg==