#include <stdio.h>
#define SIZE 10
double stack[SIZE];
int sp;
void pushu(double value);
double pop(void);
int isFull(void);
int isEmpty(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();
pushu(cal2+cal1);
break;
case 2: cal1 = pop();
cal2 = pop();
pushu(cal2-cal1);
break;
case 3: cal1 = pop();
cal2 = pop();
pushu(cal2*cal1);
break;
case 4: cal1 = pop();
cal2 = pop();
pushu(cal2/cal1);
break;
pushu(data);
break;
}
}
answer();
return 0;
}
void pushu(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+CgojZGVmaW5lIFNJWkUgMTAKZG91YmxlIHN0YWNrW1NJWkVdOwppbnQgc3A7Cgp2b2lkIHB1c2h1KGRvdWJsZSB2YWx1ZSk7CmRvdWJsZSBwb3Aodm9pZCk7CmludCBpc0Z1bGwodm9pZCk7CmludCBpc0VtcHR5KHZvaWQpOwp2b2lkIHJlc2V0KHZvaWQpOwoKaW50IG1haW4odm9pZCkgewoJcmVzZXQoKTsKCQoJd2hpbGUoMSl7CgkJZG91YmxlIGRhdGE7CgkJZG91YmxlIGNhbDEsY2FsMjsKCQlpbnQgcmVzcDsKCQkKCQlzY2FuZigiJWQiLCZyZXNwKTsKCQkKCQlpZihyZXNwPT05KSBicmVhazsKCQkKCQlzd2l0Y2gocmVzcCl7CgkJCWNhc2UgMTogY2FsMSA9IHBvcCgpOwoJCQkJY2FsMiA9IHBvcCgpOwoJCQkJcHVzaHUoY2FsMitjYWwxKTsKCQkJCWJyZWFrOwoJCQkJCgkJCWNhc2UgMjogY2FsMSA9IHBvcCgpOwoJCQkJY2FsMiA9IHBvcCgpOwoJCQkJcHVzaHUoY2FsMi1jYWwxKTsKCQkJCWJyZWFrOwoJCQkJCgkJCWNhc2UgMzogY2FsMSA9IHBvcCgpOwoJCQkJY2FsMiA9IHBvcCgpOwoJCQkJcHVzaHUoY2FsMipjYWwxKTsKCQkJCWJyZWFrOwoJCQkJCgkJCWNhc2UgNDogY2FsMSA9IHBvcCgpOwoJCQkJY2FsMiA9IHBvcCgpOwoJCQkJcHVzaHUoY2FsMi9jYWwxKTsKCQkJCWJyZWFrOwoJCQkKCQkJY2FzZSA1OiBwcmludGYoImRhdGEiKTsgc2NhbmYoIiVsZiIsJmRhdGEpOwoJCQkJcHVzaHUoZGF0YSk7CgkJCQlwcmludGYoIiVsZlxuIixkYXRhKTsKCQkJCWJyZWFrOwoJfQp9CgkJYW5zd2VyKCk7CgkJcmV0dXJuIDA7Cn0KCnZvaWQgcHVzaHUoZG91YmxlIHZhbHVlKXsKCWlmKGlzRnVsbCgpKXsKCQlwcmludGYoIuOCueOCv+ODg+OCr+OBjOa6gOadr+OBp+WFpeOCiuOBvuOBm+OCk+OBp+OBl+OBn1xuIik7Cgl9ZWxzZXsKCQlzdGFja1tzcCsrXSA9IHZhbHVlOwoJfQp9Cgpkb3VibGUgcG9wKHZvaWQpewoJaWYoaXNFbXB0eSgpKXsKCQlwcmludGYoIuOCueOCv+ODg+OCr+OBjOepuuOBp+WPluOCiuWHuuOBm+OBvuOBm+OCk+OBp+OBl+OBn1xuIik7CgkJcmV0dXJuIDA7Cgl9ZWxzZXsKCQlyZXR1cm4gc3RhY2tbLS1zcF07Cgl9Cn0KCmludCBpc0Z1bGwodm9pZCl7CgkJaWYoc3A+PVNJWkUpewoJCQlyZXR1cm4gMTsKCQl9ZWxzZXsKCQkJcmV0dXJuIDA7CgkJfQoJfQoJCmludCBpc0VtcHR5KHZvaWQpewoJCWlmKHNwPD0wKXsKCQkJcmV0dXJuIDE7CgkJfWVsc2V7CgkJCXJldHVybiAwOwoJCX0KfQoKdm9pZCBhbnN3ZXIodm9pZCl7CglwcmludGYoIlxuIik7CglwcmludGYoImFuc3dlcjolbGZcbiIsc3RhY2tbMF0pOwp9CnZvaWQgcmVzZXQodm9pZCl7Cgl3aGlsZSghaXNFbXB0eSgpKQoJcG9wKCk7Cn0=