#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();
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNJWkUgMTAKZG91YmxlIHN0YWNrW1NJWkVdOwppbnQgc3A7Cgp2b2lkIHB1c2goZG91YmxlIHZhbHVlKTsKZG91YmxlIHBvcCh2b2lkKTsKaW50IGlzRnVsbCh2b2lkKTsKaW50IGlzRW1wdHkodm9pZCk7CnZvaWQgYW5zd2VyKHZvaWQpOwp2b2lkIHJlc2V0KHZvaWQpOwoKaW50IG1haW4odm9pZCkgewoJcmVzZXQoKTsKCXdoaWxlKDEpewoJCWRvdWJsZSBkYXRhOwoJCWRvdWJsZSBjYWwxLGNhbDI7CgkJaW50IHJlc3A7CgkJCgkJc2NhbmYoIiVkIiwmcmVzcCk7CgkJCgkJaWYocmVzcD09OSlicmVhazsKCQkKCQlzd2l0Y2gocmVzcCl7CgkJCWNhc2UgMTpjYWwxPXBvcCgpOwoJCQkgICAgICAgY2FsMj1wb3AoKTsKCQkJICAgICAgIHB1c2goY2FsMitjYWwxKTsKCQkJICAgICAgIGJyZWFrOwoJCQkgICAgICAgCgkJCWNhc2UgMjpjYWwxPXBvcCgpOwoJCQkgICAgICAgY2FsMj1wb3AoKTsKCQkJICAgICAgIHB1c2goY2FsMi1jYWwxKTsKCQkJICAgICAgIGJyZWFrOwoJCQkgICAgICAgCgkJCWNhc2UgMzpjYWwxPXBvcCgpOwoJCQkgICAgICAgY2FsMj1wb3AoKTsKCQkJICAgICAgIHB1c2goY2FsMipjYWwxKTsKCQkJICAgICAgIGJyZWFrOwoJCQkgICAgICAgCgkJCWNhc2UgNDpjYWwxPXBvcCgpOwoJCQkgICAgICAgY2FsMj1wb3AoKTsKCQkJICAgICAgIHB1c2goY2FsMi9jYWwxKTsKCQkJICAgICAgIGJyZWFrOwoJCQkgICAgICAgCgkJCWNhc2UgNTpwcmludGYoImRhdGE6Iik7CgkJCSAgICAgICBzY2FuZigiJWxmIiwmZGF0YSk7CgkJCSAgICAgICBwdXNoKGRhdGEpOwoJCQkgICAgICAgcHJpbnRmKCIlbGZcbiIsZGF0YSk7CgkJCSAgICAgICBicmVhazsKCQl9Cgl9CglhbnN3ZXIoKTsKCXJldHVybiAwOwp9Cgp2b2lkIHB1c2goZG91YmxlIHZhbHVlKXsKCWlmKGlzRnVsbCgpKXsKCQlwcmludGYoIuOCueOCv+ODg+OCr+OBjOa6gOadr+OBp+WFpeOCiuOBvuOBm+OCk+OBp+OBl+OBn1xuIik7Cgl9ZWxzZXsKCQlzdGFja1tzcCsrXT12YWx1ZTsKCX0KfQoKZG91YmxlIHBvcCh2b2lkKXsKCWlmKGlzRW1wdHkoKSl7CgkJcHJpbnRmKCLjgrnjgr/jg4Pjgq/jgYznqbrjgaflj5bjgorlh7rjgZvjgb7jgZvjgpPjgafjgZfjgZ9cbiIpOwoJCXJldHVybiAwOwoJfWVsc2V7CgkJcmV0dXJuIHN0YWNrWy0tc3BdOwoJfQp9CgppbnQgaXNGdWxsKHZvaWQpewoJaWYoc3A+PVNJWkUpewoJCXJldHVybiAxOwoJfWVsc2V7CgkJcmV0dXJuIDA7Cgl9Cn0KCmludCBpc0VtcHR5KHZvaWQpewoJaWYoc3A8PTApewoJCXJldHVybiAxOwoJfWVsc2V7CgkJcmV0dXJuIDA7Cgl9Cn0KCnZvaWQgYW5zd2VyKHZvaWQpewoJcHJpbnRmKCJcbiIpOwoJcHJpbnRmKCJhbnN3ZXI6JWxmXG4iLHN0YWNrWzBdKTsKfQoKdm9pZCByZXNldCh2b2lkKXsKCXdoaWxlKCFpc0VtcHR5KCkpCglwb3AoKTsKfQo=