#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)
{ int resp;
double u1,u2,result,data;
printf("足し算:1,引き算:2,掛け算:3,割り算:4,データ入力:5,計算結果の表示:9"); while(1){
if(resp==0) break;
switch(resp){
case 1: if(sp>=2){
u2=pop();
u1=pop();
result=u1+u2;
push(result);
}else{
}
break;
case 2: if(sp>=2){
u2=pop();
u1=pop();
result=u1-u2;
push(result);
}else{
}
break;
case 3: if(sp>=2){
u2=pop();
u1=pop();
result=u1*u2;
push(result);
}else{
}
break;
case 4: if(sp>=2){
u2=pop();
u1=pop();
if(u2!=0){
result=u1/u2;
push(result);
}else{
}
}else{
}
break;
case 5:
push(data);
break;
case 9:
answer();
return 0;
}
}
}
void push(double value){
if( isFull() ){
}else{
stack[sp++]=value;
}
}
double pop(void){
if( isEmpty() ){
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(!isEmpty()){
printf("結果:%lf\n",stack
[sp
-1]); }else{
}
}
void reset(void){
sp=0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2RlZmluZSBTSVpFIDEwCmRvdWJsZSBzdGFja1tTSVpFXTsKaW50IHNwOwoKdm9pZCBwdXNoKGRvdWJsZSB2YWx1ZSk7CmRvdWJsZSBwb3Aodm9pZCk7CmludCBpc0Z1bGwodm9pZCk7CmludCBpc0VtcHR5KHZvaWQpOwp2b2lkIGFuc3dlcih2b2lkKTsKdm9pZCByZXNldCh2b2lkKTsKCmludCBtYWluKHZvaWQpCnsJaW50IHJlc3A7Cglkb3VibGUgdTEsdTIscmVzdWx0LGRhdGE7CgkJcHJpbnRmKCLotrPjgZfnrpc6MSzlvJXjgY3nrpc6MizmjpvjgZHnrpc6MyzlibLjgornrpc6NCzjg4fjg7zjgr/lhaXlips6NSzoqIjnrpfntZDmnpzjga7ooajnpLo6OSIpOwoJd2hpbGUoMSl7CgkJc2NhbmYoIiVkIiwmcmVzcCk7CgkJaWYocmVzcD09MCkgYnJlYWs7CgkJCgkJc3dpdGNoKHJlc3ApewoJCQljYXNlIDE6IGlmKHNwPj0yKXsJCgkJCQl1Mj1wb3AoKTsKCQkJCXUxPXBvcCgpOwoJCQkJcmVzdWx0PXUxK3UyOwoJCQkJcHVzaChyZXN1bHQpOwoJCQkJfWVsc2V7CgkJCQkJcHJpbnRmKCLlgKTjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYQiKTsKCQkJCX0KCQkJCWJyZWFrOwoJCQkKCQkJY2FzZSAyOiBpZihzcD49Mil7CgkJCQl1Mj1wb3AoKTsKCQkJCXUxPXBvcCgpOwoJCQkJcmVzdWx0PXUxLXUyOwoJCQkJcHVzaChyZXN1bHQpOwoJCQkJfWVsc2V7CgkJCQkJcHJpbnRmKCLlgKTjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYQiKTsKCQkJCX0KCQkJCWJyZWFrOwoJCQkKCQkJY2FzZSAzOiBpZihzcD49Mil7CgkJCQl1Mj1wb3AoKTsKCQkJCXUxPXBvcCgpOwoJCQkJcmVzdWx0PXUxKnUyOwoJCQkJcHVzaChyZXN1bHQpOwoJCQkJfWVsc2V7CgkJCQkJcHJpbnRmKCLlgKTjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYQiKTsKCQkJCX0KCQkJCWJyZWFrOwoJCQkKCQkJY2FzZSA0OglpZihzcD49Mil7CgkJCQl1Mj1wb3AoKTsKCQkJCXUxPXBvcCgpOwoJCQkJaWYodTIhPTApewoJCQkJcmVzdWx0PXUxL3UyOwoJCQkJcHVzaChyZXN1bHQpOwoJCQkJfWVsc2V7CgkJCQkJcHJpbnRmKCIw44Gn5Ymy44KL44GT44Go44Gv44Gn44GN44G+44Gb44KTIik7CgkJCQl9CgkJCQl9ZWxzZXsKCQkJCQlwcmludGYoIuWApOOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhCIpOwoJCQkJfQoJCQkJYnJlYWs7CgkJCQoJCQljYXNlIDU6CgkJCQlzY2FuZigiJWxmIiwmZGF0YSk7CgkJCQlwdXNoKGRhdGEpOwoJCQkJYnJlYWs7CgkJCQkKCQkJCgkJCWNhc2UgOToKCQkJCWFuc3dlcigpOwoJCQkJcmV0dXJuIDA7CgkJCQoJCX0KCQkKCX0KCgoJCn0KCXZvaWQgcHVzaChkb3VibGUgdmFsdWUpewoJCWlmKCBpc0Z1bGwoKSApewoJCQlwcmludGYoIuOCueOCv+ODg+OCr+OBjOa6gOadr+OBp+WFpeOCiuOBvuOBm+OCk+OBp+OBl+OBnyIpOwoJCX1lbHNlewoJCQlzdGFja1tzcCsrXT12YWx1ZTsKCQl9Cgl9Cglkb3VibGUgcG9wKHZvaWQpewoJCQkJaWYoIGlzRW1wdHkoKSApewoJCQlwcmludGYoIuOCueOCv+ODg+OCr+OBjOepuuOBp+WPluOCiuWHuuOBm+OBvuOBm+OCk+OBp+OBl+OBnyIpOwoJCQlyZXR1cm4gMDsKCQl9ZWxzZXsKCQkJcmV0dXJuIHN0YWNrWy0tc3BdOwoJCX0KCX0KCWludCBpc0Z1bGwodm9pZCl7CgkJaWYoc3A+PVNJWkUpewoJCQlyZXR1cm4gMTsKCQl9ZWxzZSB7CgkJCXJldHVybiAwOwoJCX0KCQkKCX0KCWludCBpc0VtcHR5KHZvaWQpewoJCWlmKHNwPD0wKXsKCQkJcmV0dXJuIDE7CgkJfSBlbHNlewoJCQlyZXR1cm4gMDsKCQl9Cgl9Cgl2b2lkIGFuc3dlcih2b2lkKXsKCQlpZighaXNFbXB0eSgpKXsKCQkJcHJpbnRmKCLntZDmnpw6JWxmXG4iLHN0YWNrW3NwLTFdKTsKCQl9ZWxzZXsKCQkJcHJpbnRmKCLkuK3ouqvjga/nqbrjgafjgZlcbiIpOwoJCX0KCX0KCXZvaWQgcmVzZXQodm9pZCl7CgkJIHNwPTA7Cgl9