#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)
{
sp=0;
reset();
while(1){
int command;
double basyo1,basyo2,hako;
switch(command){
case 1:
basyo1=pop();
basyo2=pop();
push(basyo2+basyo1);
break;
case 2:
basyo1=pop();
basyo2=pop();
push(basyo2-basyo1);
break;
case 3:
basyo1=pop();
basyo2=pop();
push(basyo2*basyo1);
break;
case 4:
basyo1=pop();
basyo2=pop();
push(basyo2/basyo1);
break;
case 5:
push(hako);
break;
case 9:
answer();
return 0;
}
}
}
void push(double value)//スタックを追加する関数
{
if(sp>=SIZE){
printf("スタックが満杯で入りませんでした。\n"); }else{
stack[sp++]=value;
}
}
double pop(void)//データを抽出する関数
{
if(sp<=0){
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)//計算結果
{
if(sp>0){
printf("answer:%lf\n",stack
[sp
-1]); }else{
return;
}
}
void reset(void)//スタックの中身をリセット
{
sp=0;
}
I2luY2x1ZGU8c3RkaW8uaD4KCiNkZWZpbmUgU0laRSAxMApkb3VibGUgc3RhY2tbU0laRV07CmludCBzcDsKCnZvaWQgcHVzaChkb3VibGUgdmFsdWUpOwpkb3VibGUgcG9wKHZvaWQpOwppbnQgaXNGdWxsKHZvaWQpOwppbnQgaXNFbXB0eSh2b2lkKTsKdm9pZCBhbnN3ZXIodm9pZCk7CnZvaWQgcmVzZXQodm9pZCk7CgppbnQgbWFpbih2b2lkKQp7CglzcD0wOwoKICAgIHJlc2V0KCk7Cgp3aGlsZSgxKXsKCWludCBjb21tYW5kOwoJZG91YmxlIGJhc3lvMSxiYXN5bzIsaGFrbzsKCXNjYW5mKCIlZCIsJmNvbW1hbmQpOwpzd2l0Y2goY29tbWFuZCl7CgljYXNlIDE6CgkJYmFzeW8xPXBvcCgpOwoJCWJhc3lvMj1wb3AoKTsKCQlwdXNoKGJhc3lvMitiYXN5bzEpOwoJCWJyZWFrOwoJY2FzZSAyOgoJCWJhc3lvMT1wb3AoKTsKCQliYXN5bzI9cG9wKCk7CgkJcHVzaChiYXN5bzItYmFzeW8xKTsgCgkJYnJlYWs7CgljYXNlIDM6CgkJYmFzeW8xPXBvcCgpOwoJCWJhc3lvMj1wb3AoKTsKCQlwdXNoKGJhc3lvMipiYXN5bzEpOwoJCWJyZWFrOwoJY2FzZSA0OgoJCWJhc3lvMT1wb3AoKTsKCQliYXN5bzI9cG9wKCk7CgkJcHVzaChiYXN5bzIvYmFzeW8xKTsKCQlicmVhazsKCgljYXNlIDU6CgkJc2NhbmYoIiVsZiIsJmhha28pOwoJCXB1c2goaGFrbyk7CgkJYnJlYWs7CgoJY2FzZSA5OgoJCWFuc3dlcigpOwoJCXJldHVybiAwOwoKCX0KCiAgfQp9CnZvaWQgcHVzaChkb3VibGUgdmFsdWUpLy/jgrnjgr/jg4Pjgq/jgpLov73liqDjgZnjgovplqLmlbAKewoJaWYoc3A+PVNJWkUpewoJCXByaW50Zigi44K544K/44OD44Kv44GM5rqA5p2v44Gn5YWl44KK44G+44Gb44KT44Gn44GX44Gf44CCXG4iKTsKCX1lbHNlewoJCXN0YWNrW3NwKytdPXZhbHVlOwoJfQp9CmRvdWJsZSBwb3Aodm9pZCkvL+ODh+ODvOOCv+OCkuaKveWHuuOBmeOCi+mWouaVsAp7CglpZihzcDw9MCl7CgkJcHJpbnRmKCLjgrnjgr/jg4Pjgq/jgYznqbrjgaflj5bjgorlh7rjgZvjgb7jgZvjgpPjgafjgZfjgZ/jgIJcbiIpOwoJCXJldHVybiAwOwoJfWVsc2V7CgkJcmV0dXJuIHN0YWNrWy0tc3BdOwoJfQp9CgppbnQgaXNGdWxsKHZvaWQpLy/jgrnjgr/jg4Pjgq/jgYzmuoDmna/jgYvliKTlrpoKewoJaWYoc3A+PVNJWkUpewoJCXJldHVybiAxOwoJfWVsc2V7CgkJcmV0dXJuIDA7Cgl9Cn0KCgppbnQgaXNFbXB0eSh2b2lkKS8v44K544K/44OD44Kv44GM56m644GL5Yik5a6aCnsKCWlmKHNwPD0wKXsKCQlyZXR1cm4gMTsKCX1lbHNlewoJCXJldHVybiAwOwoJfQp9Cgp2b2lkIGFuc3dlcih2b2lkKS8v6KiI566X57WQ5p6cCnsKCWlmKHNwPjApewoJCXByaW50ZigiYW5zd2VyOiVsZlxuIixzdGFja1tzcC0xXSk7Cgl9ZWxzZXsKCQlyZXR1cm47Cgl9Cn0KCnZvaWQgcmVzZXQodm9pZCkvL+OCueOCv+ODg+OCr+OBruS4rei6q+OCkuODquOCu+ODg+ODiAp7CglzcD0wOwp9Cg==