#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,リセット:0\n");
while(1)
{
if(!resp) break;
switch(resp)
{
case 0:
{
reset();
break;
}
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
[sp
-1]); else
}
void reset(void)
{
sp=0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNJWkUgMTAKZG91YmxlIHN0YWNrW1NJWkVdOwppbnQgc3A7Cgp2b2lkIHB1c2goZG91YmxlIHZhbHVlKTsKZG91YmxlIHBvcCh2b2lkKTsKaW50IGlzRnVsbCh2b2lkKTsKaW50IGlzRW1wdHkodm9pZCk7CnZvaWQgYW5zd2VyKHZvaWQpOwp2b2lkIHJlc2V0KHZvaWQpOwoKaW50IG1haW4odm9pZCkgewoJCglzcD0wOwoJaW50IHJlc3A7Cglkb3VibGUgYTsKCWRvdWJsZSBkYXRhMSxkYXRhMjsKCXByaW50Zigi6Laz44GX566X77yaMSzlvJXjgY3nrpfvvJoyLOaOm+OBkeeul++8mjMs5Ymy44KK566X77yaNCzlhaXlipvvvJo1LOe1kOaenOihqOekuu+8mjks44Oq44K744OD44OI77yaMFxuIik7CgkKCXdoaWxlKDEpCgl7CgkJc2NhbmYoIiVkIiwmcmVzcCk7CgkJaWYoIXJlc3ApIGJyZWFrOwoJCXN3aXRjaChyZXNwKQoJCXsKCQkJY2FzZSAwOgoJCQl7CgkJCQlyZXNldCgpOwoJCQkJYnJlYWs7CgkJCX0KCQkJY2FzZSAxOgoJCQl7CgkJCQlkYXRhMT1wb3AoKTsKCQkJCWRhdGEyPXBvcCgpOwoJCQkJcHVzaChkYXRhMStkYXRhMik7CgkJCQlicmVhazsKCQkJfQoJCQljYXNlIDI6CgkJCXsKCQkJCWRhdGExPXBvcCgpOwoJCQkJZGF0YTI9cG9wKCk7CgkJCQlwdXNoKGRhdGEyLWRhdGExKTsKCQkJCWJyZWFrOwoJCQl9CgkJCWNhc2UgMzoKCQkJewoJCQkJZGF0YTE9cG9wKCk7CgkJCQlkYXRhMj1wb3AoKTsKCQkJCXB1c2goZGF0YTEqZGF0YTIpOwoJCQkJYnJlYWs7CgkJCX0KCQkJY2FzZSA0OgoJCQl7CgkJCQlkYXRhMT1wb3AoKTsKCQkJCWRhdGEyPXBvcCgpOwoJCQkJcHVzaChkYXRhMi9kYXRhMSk7CgkJCQlicmVhazsKCQkJfQoJCQljYXNlIDU6CgkJCQlzY2FuZigiJWxmIiwmYSk7CgkJCQlwdXNoKGEpOwoJCQkJYnJlYWs7CgkJCWNhc2UgOToKCQkJewoJCQkJYW5zd2VyKCk7CgkJCQlicmVhazsKCQkJfQoJCX0KCQkKCX0KCQoJcmV0dXJuIDA7Cn0KCnZvaWQgcHVzaChkb3VibGUgdmFsdWUpCnsKCWlmKGlzRnVsbCgpKQoJewoJCXByaW50Zigi5rqA5p2v44Gn5YWl44KK44G+44Gb44KT44Gn44GX44Gf44CCIik7CgkJcmV0dXJuOwoJfQoJZWxzZQoJewoJCXN0YWNrW3NwKytdPXZhbHVlOwoJfQp9Cgpkb3VibGUgcG9wKHZvaWQpCnsKCWlmKGlzRW1wdHkoKSkgCgkJcmV0dXJuIDA7CgllbHNlCgkJcmV0dXJuIHN0YWNrWy0tc3BdOwp9CgppbnQgaXNGdWxsKHZvaWQpCnsKCS8vMeOBoOOBo+OBn+OCiea6gOadr+OAgTDjgaDjgaPjgZ/jgonmuoDmna/jgZjjgoPjgarjgYQKCWlmKHNwPj1TSVpFKQoJCXJldHVybiAxOwoJZWxzZQoJCXJldHVybiAwOwp9CgppbnQgaXNFbXB0eSh2b2lkKQp7CgkvLzHjgaDjgaPjgZ/jgonnqbrjgIEw44Gg44Gj44Gf44KJ56m644GY44KD44Gq44GECglpZihzcDw9MCkKCQlyZXR1cm4gMTsKCWVsc2UKCQlyZXR1cm4gMDsKfQp2b2lkIGFuc3dlcih2b2lkKQp7CglpZighaXNFbXB0eSgpKQoJCXByaW50Zigi6KiI566X57WQ5p6c77yaJWxmXG4iLHN0YWNrW3NwLTFdKTsKCWVsc2UKCQlwcmludGYoIuOCueOCv+ODg+OCr+OBjOepuuOBp+OBmeOAglxuIik7Cn0Kdm9pZCByZXNldCh2b2lkKQp7CglzcD0wOwp9Cg==