#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 reset(void);
void answer(void);
int main(void)
{
int resp;
double data, a, b;
reset();
while(1){
int result
= scanf("%d", &resp
);
if(result == EOF){
break;
}
if(result != 1){
break;
}
if(resp == 0) break;
switch(resp){
case 1:
b = pop();
a = pop();
push(a + b);
break;
case 2:
b = pop();
a = pop();
push(a - b);
break;
case 3:
b = pop();
a = pop();
push(a * b);
break;
case 4:
b = pop();
a = pop();
if(b == 0){
printf("Cannot divide by zero\n"); push(a);
push(b);
break;
}
push(a / b);
break;
case 5:
if(scanf("%lf", &data
) != 1){ return 1;
}
push(data);
break;
case 9:
answer();
break;
default:
break;
}
}
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)
{
double sum = 0;
int i;
for(i = 0; i < sp; i++){
printf("Data %d: %g\n", i
+ 1, stack
[i
]); sum += stack[i];
}
}
void reset(void)
{
sp = 0;
}
CiNpbmNsdWRlIDxzdGRpby5oPgoKI2RlZmluZSBTSVpFIDEwCgpkb3VibGUgc3RhY2tbU0laRV07CmludCBzcDsKCnZvaWQgcHVzaChkb3VibGUgdmFsdWUpOwpkb3VibGUgcG9wKHZvaWQpOwppbnQgaXNGdWxsKHZvaWQpOwppbnQgaXNFbXB0eSh2b2lkKTsKdm9pZCByZXNldCh2b2lkKTsKdm9pZCBhbnN3ZXIodm9pZCk7CgppbnQgbWFpbih2b2lkKQp7CiAgICBpbnQgcmVzcDsKICAgIGRvdWJsZSBkYXRhLCBhLCBiOwoKICAgIHJlc2V0KCk7CgogICAgd2hpbGUoMSl7CgogICAgICAKICAgICAgICBpbnQgcmVzdWx0ID0gc2NhbmYoIiVkIiwgJnJlc3ApOwoKICAgICAgICBpZihyZXN1bHQgPT0gRU9GKXsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQoKICAgICAgICBpZihyZXN1bHQgIT0gMSl7CiAgICAgICAgICAgIHByaW50ZigiSW52YWxpZCBpbnB1dFxuIik7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgaWYocmVzcCA9PSAwKSBicmVhazsKCiAgICAgICAgc3dpdGNoKHJlc3ApewoKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgYiA9IHBvcCgpOwogICAgICAgICAgICAgICAgYSA9IHBvcCgpOwogICAgICAgICAgICAgICAgcHVzaChhICsgYik7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgIGIgPSBwb3AoKTsKICAgICAgICAgICAgICAgIGEgPSBwb3AoKTsKICAgICAgICAgICAgICAgIHB1c2goYSAtIGIpOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgICBiID0gcG9wKCk7CiAgICAgICAgICAgICAgICBhID0gcG9wKCk7CiAgICAgICAgICAgICAgICBwdXNoKGEgKiBiKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgICAgYiA9IHBvcCgpOwogICAgICAgICAgICAgICAgYSA9IHBvcCgpOwoKICAgICAgICAgICAgICAgIGlmKGIgPT0gMCl7CiAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJDYW5ub3QgZGl2aWRlIGJ5IHplcm9cbiIpOwogICAgICAgICAgICAgICAgICAgIHB1c2goYSk7CiAgICAgICAgICAgICAgICAgICAgcHVzaChiKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBwdXNoKGEgLyBiKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgICAgcHJpbnRmKCJpbnNlcnQgZGF0YToiKTsKICAgICAgICAgICAgICAgIGlmKHNjYW5mKCIlbGYiLCAmZGF0YSkgIT0gMSl7CiAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJJbnZhbGlkIGlucHV0XG4iKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBwdXNoKGRhdGEpOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIDk6CiAgICAgICAgICAgICAgICBhbnN3ZXIoKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHByaW50ZigiSW52YWxpZCBjb21tYW5kXG4iKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMDsKfQoKdm9pZCBwdXNoKGRvdWJsZSB2YWx1ZSkKewogICAgaWYoaXNGdWxsKCkpewogICAgICAgIHByaW50Zigic3RhY2sgaXMgZnVsbFxuIik7CiAgICB9ZWxzZXsKICAgICAgICBzdGFja1tzcCsrXSA9IHZhbHVlOwogICAgfQp9Cgpkb3VibGUgcG9wKHZvaWQpCnsKICAgIGlmKGlzRW1wdHkoKSl7CiAgICAgICAgcHJpbnRmKCJzdGFjayBpcyBlbXB0eVxuIik7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9ZWxzZXsKICAgICAgICByZXR1cm4gc3RhY2tbLS1zcF07CiAgICB9Cn0KCmludCBpc0Z1bGwodm9pZCkKewogICAgaWYoc3AgPj0gU0laRSl7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9ZWxzZXsKICAgICAgICByZXR1cm4gMDsKICAgIH0KfQoKaW50IGlzRW1wdHkodm9pZCkKewogICAgaWYoc3AgPD0gMCl7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9ZWxzZXsKICAgICAgICByZXR1cm4gMDsKICAgIH0KfQoKdm9pZCBhbnN3ZXIodm9pZCkKewogICAgZG91YmxlIHN1bSA9IDA7CiAgICBpbnQgaTsKCiAgICBmb3IoaSA9IDA7IGkgPCBzcDsgaSsrKXsKICAgICAgICBwcmludGYoIkRhdGEgJWQ6ICVnXG4iLCBpICsgMSwgc3RhY2tbaV0pOwogICAgICAgIHN1bSArPSBzdGFja1tpXTsKICAgIH0KCiAgICBwcmludGYoIkFuc3dlciAlZ1xuIiwgc3VtKTsKfQoKdm9pZCByZXNldCh2b2lkKQp7CiAgICBzcCA9IDA7Cn0K