#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 resp;
double data,cal1,cal2;
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:%f\n",stack
[0]); }
void reset(void){
while(!isEmpty())
pop();
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNkZWZpbmUgU0laRSAxMApkb3VibGUgc3RhY2tbU0laRV07CmludCBzcDsKCnZvaWQgcHVzaChkb3VibGUgdmFsdWUpOwpkb3VibGUgcG9wKHZvaWQpOwppbnQgaXNGdWxsKHZvaWQpOwppbnQgaXNFbXB0eSh2b2lkKTsKdm9pZCBhbnN3ZXIodm9pZCk7CnZvaWQgcmVzZXQodm9pZCk7CgppbnQgbWFpbih2b2lkKSB7CglyZXNldCgpOwoJCgl3aGlsZSgxKXsKCQlpbnQgcmVzcDsKCQlkb3VibGUgZGF0YSxjYWwxLGNhbDI7CgkJc2NhbmYoIiVkIiwmcmVzcCk7CgkJaWYocmVzcCA9PSA5KXsKCQkJYnJlYWs7CgkJfQoJCXN3aXRjaChyZXNwKXsKCQkJY2FzZSAxOiBjYWwxID0gcG9wKCk7CgkJCQkJY2FsMiA9IHBvcCgpOwoJCQkJCXB1c2goY2FsMiArIGNhbDEpOwoJCQkJCWJyZWFrOwoJCQljYXNlIDI6IGNhbDEgPSBwb3AoKTsKCQkJCQljYWwyID0gcG9wKCk7CgkJCQkJcHVzaChjYWwyIC0gY2FsMSk7CgkJCQkJYnJlYWs7CgkJCWNhc2UgMzogY2FsMSA9IHBvcCgpOwoJCQkJCWNhbDIgPSBwb3AoKTsKCQkJCQlwdXNoKGNhbDIgKiBjYWwxKTsKCQkJCQlicmVhazsKCQkJY2FzZSA0OiBjYWwxID0gcG9wKCk7CgkJCQkJY2FsMiA9IHBvcCgpOwoJCQkJCXB1c2goY2FsMiAvIGNhbDEpOwoJCQkJCWJyZWFrOwoJCQljYXNlIDU6IHByaW50ZigiZGF0YToiKTsKCQkJCQlzY2FuZigiJWxmIiwmZGF0YSk7CgkJCQkJcHVzaChkYXRhKTsKCQkJCQlwcmludGYoImRhdGE6JWZcbiIsIGRhdGEpOwoJCQkJCWJyZWFrOwoJCX0KCX0KCWFuc3dlcigpOwoJCglyZXR1cm4gMDsKfQp2b2lkIHB1c2goZG91YmxlIHZhbHVlKXsKCWlmKCFpc0Z1bGwoKSl7CgkJcHJpbnRmKCLjgrnjgr/jg4Pjgq/jgYzmuoDmna/jgaflhaXjgorjgb7jgZvjgpPjgafjgZfjgZ9cbiIpOwoJfWVsc2V7CgkJc3RhY2tbc3ArK10gPSB2YWx1ZTsKCX0KfQpkb3VibGUgcG9wKHZvaWQpewoJaWYoIWlzRW1wdHkoKSl7CgkJcHJpbnRmKCLjgrnjgr/jg4Pjgq/jgYznqbrjgaflj5bjgorlh7rjgZvjgb7jgZvjgpPjgafjgZfjgZ9cbiIpOwoJCXJldHVybiAwOwoJCX1lbHNlewoJCQlyZXR1cm4gc3RhY2tbLS1zcF07Cgl9Cn0KaW50IGlzRnVsbCh2b2lkKXsKCWlmKHNwID49IFNJWkUpewoJCXJldHVybiAxOwoJfWVsc2V7CgkJcmV0dXJuIDA7Cgl9Cn0KaW50IGlzRW1wdHkodm9pZCl7CglpZihzcCA8PSAwKXsKCQlyZXR1cm4gMTsKCX1lbHNlewoJCXJldHVybiAwOwoJfQp9CnZvaWQgYW5zd2VyKHZvaWQpewoJCXByaW50ZigiXG4iKTsKCQlwcmludGYoImFuc3dlcjolZlxuIixzdGFja1swXSk7Cgl9CnZvaWQgcmVzZXQodm9pZCl7Cgl3aGlsZSghaXNFbXB0eSgpKQoJcG9wKCk7Cn0=