#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();
int resp, date;
while(1){
//(1)
printf("1:+ 2:- 3:* 4:/ 5:push 9:answer\n"); if(resp==9){
break;
}
else{
switch(resp){
case 1:
push(pop()+pop());
break;
case 2:
push(pop()-pop());
break;
case 3:
push(pop()*pop());
break;
case 4:
push(pop()/pop());
break;
case 5:
push(date);
break;
}
}
}
answer();
return 0;
}
void push(double value){
//(2)
if(isFull()!=0){
stack[sp++]=value;
}
printf("date:%f\n", stack
[sp
-1]); }
double pop(void){
//(3)
if(isEmpty()!=0){
return stack[--sp];
}
else return 1;
}
int isFull(void){
//(4)
if(sp>=SIZE){
return 0;
}
else return 1;
}
int isEmpty(void){
//(5)
if(sp<=0){
printf("スタックが空で取り出せませんでした\n"); return 0;
}
else return 1;
}
void answer(void){
//(6)
printf("answer:%f", stack
[0]); }
void reset(void){
//(7)
sp=0;
}
I2luY2x1ZGU8c3RkaW8uaD4KCiNkZWZpbmUgU0laRSAxMApkb3VibGUgc3RhY2tbU0laRV07CmludCBzcDsKCnZvaWQgcHVzaChkb3VibGUgdmFsdWUpOwpkb3VibGUgcG9wKHZvaWQpOwppbnQgaXNGdWxsKHZvaWQpOwppbnQgaXNFbXB0eSh2b2lkKTsKdm9pZCBhbnN3ZXIodm9pZCk7CnZvaWQgcmVzZXQodm9pZCk7CgoKaW50IG1haW4odm9pZCl7CiAgICByZXNldCgpOwogICAgaW50IHJlc3AsIGRhdGU7CiAgICB3aGlsZSgxKXsKICAgICAgICAvLygxKQogICAgICAgIHByaW50ZigiMTorIDI6LSAzOiogNDovIDU6cHVzaCA5OmFuc3dlclxuIik7CiAgICAgICAgc2NhbmYoIiVkIiwgJnJlc3ApOwogICAgICAgIGlmKHJlc3A9PTkpewogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgc3dpdGNoKHJlc3ApewogICAgICAgICAgICAgICAgY2FzZSAxOiAKICAgICAgICAgICAgICAgICAgICBwdXNoKHBvcCgpK3BvcCgpKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgICAgICBwdXNoKHBvcCgpLXBvcCgpKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgICAgICBwdXNoKHBvcCgpKnBvcCgpKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgICAgICBwdXNoKHBvcCgpL3BvcCgpKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICAgICAgICBwcmludGYoInB1c2g6XG4iKTsKICAgICAgICAgICAgICAgICAgICBzY2FuZigiJWQiLCZkYXRlKTsKICAgICAgICAgICAgICAgICAgICBwdXNoKGRhdGUpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgYW5zd2VyKCk7CgogICAgcmV0dXJuIDA7Cn0Kdm9pZCBwdXNoKGRvdWJsZSB2YWx1ZSl7CiAgICAvLygyKQogICAgaWYoaXNGdWxsKCkhPTApewogICAgICAgIHN0YWNrW3NwKytdPXZhbHVlOwogICAgfQogICAgcHJpbnRmKCJkYXRlOiVmXG4iLCBzdGFja1tzcC0xXSk7Cn0KZG91YmxlIHBvcCh2b2lkKXsKICAgIC8vKDMpCiAgICBpZihpc0VtcHR5KCkhPTApewogICAgICAgIHJldHVybiBzdGFja1stLXNwXTsKICAgIH0KICAgIGVsc2UgcmV0dXJuIDE7Cn0KaW50IGlzRnVsbCh2b2lkKXsKICAgIC8vKDQpCiAgICBpZihzcD49U0laRSl7CiAgICAgICAgcHJpbnRmKCLjgrnjgr/jg4Pjgq/jgYzmuoDmna/jgaflhaXjgorjgb7jgZvjgpPjgafjgZfjgZ9cbiIpOwogICAgICAgIHJldHVybiAwOwogICAgfQogICAgZWxzZSByZXR1cm4gMTsKfQppbnQgaXNFbXB0eSh2b2lkKXsKICAgIC8vKDUpCiAgICBpZihzcDw9MCl7CiAgICAgICAgcHJpbnRmKCLjgrnjgr/jg4Pjgq/jgYznqbrjgaflj5bjgorlh7rjgZvjgb7jgZvjgpPjgafjgZfjgZ9cbiIpOwogICAgICAgIHJldHVybiAwOwogICAgfQogICAgZWxzZSByZXR1cm4gMTsKfQp2b2lkIGFuc3dlcih2b2lkKXsKICAgIC8vKDYpCiAgICBwcmludGYoImFuc3dlcjolZiIsIHN0YWNrWzBdKTsKfQp2b2lkIHJlc2V0KHZvaWQpewogICAgLy8oNykKICAgIHNwPTA7Cn0K