#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;
int resp;
double a;
double data1,data2;
printf("足し算:1,引き算:2,掛け算:3,割り算:4,入力:5,結果表示:9\n");
while(1)
{
if(!resp) break;
switch(resp)
{
case 1:
{
data1=pop();
data2=pop();
push(data1+data2);
break;
}
case 2:
{
data1=pop();
data2=pop();
push(data2-data1);
break;
}
case 3:
{
data1=pop();
data2=pop();
push(data1*data2);
break;
}
case 4:
{
data1=pop();
data2=pop();
push(data2/data1);
break;
}
case 5:
push(a);
break;
case 9:
{
answer();
break;
}
}
}
return 0;
}
void push(double value)
{
if(isFull())
{
return;
}
else
{
stack[sp++]=value;
}
}
double pop(void)
{
if(isEmpty())
return 0;
else
return stack[--sp];
}
int isFull(void)
{
//1だったら満杯、0だったら満杯じゃない
if(sp>=SIZE)
return 1;
else
return 0;
}
int isEmpty(void)
{
//1だったら空、0だったら空じゃない
if(sp<=0)
return 1;
else
return 0;
}
void answer(void)
{
if(!isEmpty())
printf("計算結果:%lf\n",stack
[0]); else
}
void reset(void)
{
sp=0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNJWkUgMTAKZG91YmxlIHN0YWNrW1NJWkVdOwppbnQgc3A7Cgp2b2lkIHB1c2goZG91YmxlIHZhbHVlKTsKZG91YmxlIHBvcCh2b2lkKTsKaW50IGlzRnVsbCh2b2lkKTsKaW50IGlzRW1wdHkodm9pZCk7CnZvaWQgYW5zd2VyKHZvaWQpOwp2b2lkIHJlc2V0KHZvaWQpOwoKaW50IG1haW4odm9pZCkgewoJCglzcD0wOwoJaW50IHJlc3A7Cglkb3VibGUgYTsKCWRvdWJsZSBkYXRhMSxkYXRhMjsKCXByaW50Zigi6Laz44GX566X77yaMSzlvJXjgY3nrpfvvJoyLOaOm+OBkeeul++8mjMs5Ymy44KK566X77yaNCzlhaXlipvvvJo1LOe1kOaenOihqOekuu+8mjlcbiIpOwoJCgl3aGlsZSgxKQoJewoJCXNjYW5mKCIlZCIsJnJlc3ApOwoJCWlmKCFyZXNwKSBicmVhazsKCQlzd2l0Y2gocmVzcCkKCQl7CgkJCWNhc2UgMToKCQkJewoJCQkJZGF0YTE9cG9wKCk7CgkJCQlkYXRhMj1wb3AoKTsKCQkJCXB1c2goZGF0YTErZGF0YTIpOwoJCQkJYnJlYWs7CgkJCX0KCQkJY2FzZSAyOgoJCQl7CgkJCQlkYXRhMT1wb3AoKTsKCQkJCWRhdGEyPXBvcCgpOwoJCQkJcHVzaChkYXRhMi1kYXRhMSk7CgkJCQlicmVhazsKCQkJfQoJCQljYXNlIDM6CgkJCXsKCQkJCWRhdGExPXBvcCgpOwoJCQkJZGF0YTI9cG9wKCk7CgkJCQlwdXNoKGRhdGExKmRhdGEyKTsKCQkJCWJyZWFrOwoJCQl9CgkJCWNhc2UgNDoKCQkJewoJCQkJZGF0YTE9cG9wKCk7CgkJCQlkYXRhMj1wb3AoKTsKCQkJCXB1c2goZGF0YTIvZGF0YTEpOwoJCQkJYnJlYWs7CgkJCX0KCQkJY2FzZSA1OgoJCQkJc2NhbmYoIiVsZiIsJmEpOwoJCQkJcHVzaChhKTsKCQkJCWJyZWFrOwoJCQljYXNlIDk6CgkJCXsKCQkJCWFuc3dlcigpOwoJCQkJYnJlYWs7CgkJCX0KCQl9CgkJCgl9CgkKCXJldHVybiAwOwp9Cgp2b2lkIHB1c2goZG91YmxlIHZhbHVlKQp7CglpZihpc0Z1bGwoKSkKCXsKCQlwcmludGYoIua6gOadr+OBp+WFpeOCiuOBvuOBm+OCk+OBp+OBl+OBn+OAgiIpOwoJCXJldHVybjsKCX0KCWVsc2UKCXsKCQlzdGFja1tzcCsrXT12YWx1ZTsKCX0KfQoKZG91YmxlIHBvcCh2b2lkKQp7CglpZihpc0VtcHR5KCkpIAoJCXJldHVybiAwOwoJZWxzZQoJCXJldHVybiBzdGFja1stLXNwXTsKfQoKaW50IGlzRnVsbCh2b2lkKQp7CgkvLzHjgaDjgaPjgZ/jgonmuoDmna/jgIEw44Gg44Gj44Gf44KJ5rqA5p2v44GY44KD44Gq44GECglpZihzcD49U0laRSkKCQlyZXR1cm4gMTsKCWVsc2UKCQlyZXR1cm4gMDsKfQoKaW50IGlzRW1wdHkodm9pZCkKewoJLy8x44Gg44Gj44Gf44KJ56m644CBMOOBoOOBo+OBn+OCieepuuOBmOOCg+OBquOBhAoJaWYoc3A8PTApCgkJcmV0dXJuIDE7CgllbHNlCgkJcmV0dXJuIDA7Cn0Kdm9pZCBhbnN3ZXIodm9pZCkKewoJaWYoIWlzRW1wdHkoKSkKCQlwcmludGYoIuioiOeul+e1kOaenO+8miVsZlxuIixzdGFja1swXSk7CgllbHNlCgkJcHJpbnRmKCLjgrnjgr/jg4Pjgq/jgYznqbrjgafjgZnjgIJcbiIpOwp9CnZvaWQgcmVzZXQodm9pZCkKewoJc3A9MDsKfQo=