#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();
printf("1:+ 2:- 3:* 4:/ 5:入力 9:答え\n"); while(1){
int res=0,i;
double data=0;
if(!res) break;
switch(res){
case 1: pop(); pop(); data=stack[sp]+stack[sp+1]; push(data); break;
case 2: pop(); pop(); data=stack[sp]-stack[sp+1]; push(data); break;
case 3: pop(); pop(); data=stack[sp]*stack[sp+1]; push(data); break;
case 4: pop(); pop(); data=stack[sp]/stack[sp+1]; push(data); break;
case 5: scanf("%lf",&data
); printf("入力したデータ=%lf\n",data
); push
(data
); break; case 9: res=0;break;
}
//printf("sp=%d\n",sp);
}
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){
pop
(); printf("答えは%lfです。",stack
[sp
]);}
void reset(void){
sp=0;
}
I2luY2x1ZGU8c3RkaW8uaD4KCiNkZWZpbmUgU0laRSAxMApkb3VibGUgc3RhY2tbU0laRV07CmludCBzcDsKCnZvaWQgcHVzaChkb3VibGUgdmFsdWUpOwpkb3VibGUgcG9wKHZvaWQpOwppbnQgaXNGdWxsKHZvaWQpOwppbnQgaXNFbXB0eSh2b2lkKTsKdm9pZCBhbnN3ZXIodm9pZCk7CnZvaWQgcmVzZXQodm9pZCk7CgppbnQgbWFpbih2b2lkKQp7CiAgICByZXNldCgpOwogICAgcHJpbnRmKCIxOisgMjotIDM6KiA0Oi8gNTrlhaXlipsgOTrnrZTjgYhcbiIpOwp3aGlsZSgxKXsKaW50IHJlcz0wLGk7CmRvdWJsZSBkYXRhPTA7CnNjYW5mKCIlZCIsJnJlcyk7CmlmKCFyZXMpIGJyZWFrOwpzd2l0Y2gocmVzKXsKY2FzZSAxOiBwb3AoKTsgcG9wKCk7IGRhdGE9c3RhY2tbc3BdK3N0YWNrW3NwKzFdOyBwdXNoKGRhdGEpOyBicmVhazsKY2FzZSAyOiBwb3AoKTsgcG9wKCk7IGRhdGE9c3RhY2tbc3BdLXN0YWNrW3NwKzFdOyBwdXNoKGRhdGEpOyBicmVhazsKY2FzZSAzOiBwb3AoKTsgcG9wKCk7IGRhdGE9c3RhY2tbc3BdKnN0YWNrW3NwKzFdOyBwdXNoKGRhdGEpOyBicmVhazsKY2FzZSA0OiBwb3AoKTsgcG9wKCk7IGRhdGE9c3RhY2tbc3BdL3N0YWNrW3NwKzFdOyBwdXNoKGRhdGEpOyBicmVhazsKY2FzZSA1OiBzY2FuZigiJWxmIiwmZGF0YSk7IHByaW50Zigi5YWl5Yqb44GX44Gf44OH44O844K/77ydJWxmXG4iLGRhdGEpOyBwdXNoKGRhdGEpOyBicmVhazsKY2FzZSA5OiByZXM9MDticmVhazsKfQovL3ByaW50Zigic3A9JWRcbiIsc3ApOwogICB9CiAgICBhbnN3ZXIoKTsKICAgIHJldHVybiAwOwp9CnZvaWQgcHVzaChkb3VibGUgdmFsdWUpewppZihpc0Z1bGwoKSl7CnByaW50Zigi44K544K/44OD44Kv44Gv5rqA44K/44OzXG4iKTsKfWVsc2V7CnN0YWNrW3NwKytdPXZhbHVlOwp9fQpkb3VibGUgcG9wKHZvaWQpewppZihpc0VtcHR5KCkpewpwcmludGYoIuOCueOCv+ODg+OCr+OBr+epulxuIik7CnJldHVybiAwOwp9ZWxzZXsKcmV0dXJuIHN0YWNrWy0tc3BdOwp9fQppbnQgaXNGdWxsKHZvaWQpewppZihzcD49U0laRSl7CnJldHVybiAxOwp9ZWxzZXsKcmV0dXJuIDA7Cn19CmludCBpc0VtcHR5KHZvaWQpewppZihzcDwwKXsKcmV0dXJuIDE7Cn1lbHNlewpyZXR1cm4gMDsKfX0Kdm9pZCBhbnN3ZXIodm9pZCl7CnBvcCgpOyBwcmludGYoIuetlOOBiOOBryVsZuOBp+OBmeOAgiIsc3RhY2tbc3BdKTsKfQp2b2lkIHJlc2V0KHZvaWQpewpzcD0wOwp9