#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();
sp=2;
stack[0]=2;
stack[1]=3;

int resp;
double a,b,c;
while(1){
	printf("1:足し算 2:引き算 3:掛け算 4:割り算 5:データ入力 9:計算結果の表示\n");
		if (scanf("%d", &resp) != 1) break;
		if(!resp) break;
		
		switch(resp){
			case 1:printf("足し算\n");
			b=pop();
			printf("%lf\n",b);
			a=pop();
			printf("%lf\n",a);
			push(a+b);
			break;
			case 2:printf("引き算\n");
			b=pop();
			a=pop();
			push(a-b);
			break;
			case 3:printf("	掛け算\n");
			b=pop();
			a=pop();
			push(a*b);
			break;
			case 4:printf("割り算\n");
			b=pop();
			a=pop();
			push(a/b);
			break;
			case 5:printf("データ入力");
			scanf("%d",&c);
			push(c);
			break;
		}
		printf("%d\n",sp);
	answer();
	return 0;
}
}

void push(double value){
	if (!isFull()){
        stack[sp] = value;
        sp++;
    }
}
double pop(void){
	if (!isEmpty()) {
        sp--;
        return stack[sp];
    }
    return 0;
}
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("answer:%lf\n", stack[sp - 1]);
    }
}
void reset(void){
	sp = 0;
}