#include <stdio.h>
#define SIZE 10
double stack[SIZE];
int top = 0;
void push(double value)
{
if(top == SIZE){
return;
}
stack[top] = value;
top++;
}
double pop(void)
{
if(top == 0){
return 0;
}
top--;
return stack[top];
}
void showAnswer(void)
{
int i;
double sum = 0;
if(top == 0){
return;
}
for(i = 0; i < top; i++){
printf("Data %d: %g\n", i
+ 1, stack
[i
]); sum += stack[i];
}
}
int main(void)
{
int command;
double data;
double a, b;
while(1){
if(scanf("%d", &command
) != 1){ break;
}
if(command == 0){
break;
}
switch(command){
case 1:
if(top < 2){
printf("Not enough data in stack\n"); break;
}
b = pop();
a = pop();
push(a + b);
break;
case 2:
if(top < 2){
printf("Not enough data in stack\n"); break;
}
b = pop();
a = pop();
push(a - b);
break;
case 3:
if(top < 2){
printf("Not enough data in stack\n"); break;
}
b = pop();
a = pop();
push(a * b);
break;
case 4:
if(top < 2){
printf("Not enough data in stack\n"); break;
}
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:
showAnswer();
break;
default:
break;
}
}
return 0;
}
CiNpbmNsdWRlIDxzdGRpby5oPgoKI2RlZmluZSBTSVpFIDEwCgpkb3VibGUgc3RhY2tbU0laRV07CmludCB0b3AgPSAwOwoKdm9pZCBwdXNoKGRvdWJsZSB2YWx1ZSkKewogICAgaWYodG9wID09IFNJWkUpewogICAgICAgIHByaW50ZigiU3RhY2sgaXMgZnVsbFxuIik7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIHN0YWNrW3RvcF0gPSB2YWx1ZTsKICAgIHRvcCsrOwp9Cgpkb3VibGUgcG9wKHZvaWQpCnsKICAgIGlmKHRvcCA9PSAwKXsKICAgICAgICBwcmludGYoIlN0YWNrIGlzIGVtcHR5XG4iKTsKICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICB0b3AtLTsKICAgIHJldHVybiBzdGFja1t0b3BdOwp9Cgp2b2lkIHNob3dBbnN3ZXIodm9pZCkKewogICAgaW50IGk7CiAgICBkb3VibGUgc3VtID0gMDsKCiAgICBpZih0b3AgPT0gMCl7CiAgICAgICAgcHJpbnRmKCJTdGFjayBpcyBlbXB0eVxuIik7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGZvcihpID0gMDsgaSA8IHRvcDsgaSsrKXsKICAgICAgICBwcmludGYoIkRhdGEgJWQ6ICVnXG4iLCBpICsgMSwgc3RhY2tbaV0pOwogICAgICAgIHN1bSArPSBzdGFja1tpXTsKICAgIH0KCiAgICBwcmludGYoIkFuc3dlciAlZ1xuIiwgc3VtKTsKfQoKaW50IG1haW4odm9pZCkKewogICAgaW50IGNvbW1hbmQ7CiAgICBkb3VibGUgZGF0YTsKICAgIGRvdWJsZSBhLCBiOwoKICAgIHdoaWxlKDEpewoKICAgICAgIAoKICAgICAgICBpZihzY2FuZigiJWQiLCAmY29tbWFuZCkgIT0gMSl7CiAgICAgICAgICAgIHByaW50ZigiSW52YWxpZCBpbnB1dFxuIik7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgaWYoY29tbWFuZCA9PSAwKXsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQoKICAgICAgICBzd2l0Y2goY29tbWFuZCl7CgogICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICBpZih0b3AgPCAyKXsKICAgICAgICAgICAgICAgICAgICBwcmludGYoIk5vdCBlbm91Z2ggZGF0YSBpbiBzdGFja1xuIik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgYiA9IHBvcCgpOwogICAgICAgICAgICAgICAgYSA9IHBvcCgpOwogICAgICAgICAgICAgICAgcHVzaChhICsgYik7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgIGlmKHRvcCA8IDIpewogICAgICAgICAgICAgICAgICAgIHByaW50ZigiTm90IGVub3VnaCBkYXRhIGluIHN0YWNrXG4iKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBiID0gcG9wKCk7CiAgICAgICAgICAgICAgICBhID0gcG9wKCk7CiAgICAgICAgICAgICAgICBwdXNoKGEgLSBiKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgaWYodG9wIDwgMil7CiAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJOb3QgZW5vdWdoIGRhdGEgaW4gc3RhY2tcbiIpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGIgPSBwb3AoKTsKICAgICAgICAgICAgICAgIGEgPSBwb3AoKTsKICAgICAgICAgICAgICAgIHB1c2goYSAqIGIpOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgICBpZih0b3AgPCAyKXsKICAgICAgICAgICAgICAgICAgICBwcmludGYoIk5vdCBlbm91Z2ggZGF0YSBpbiBzdGFja1xuIik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgYiA9IHBvcCgpOwogICAgICAgICAgICAgICAgYSA9IHBvcCgpOwoKICAgICAgICAgICAgICAgIGlmKGIgPT0gMCl7CiAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJDYW5ub3QgZGl2aWRlIGJ5IHplcm9cbiIpOwogICAgICAgICAgICAgICAgICAgIHB1c2goYSk7CiAgICAgICAgICAgICAgICAgICAgcHVzaChiKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBwdXNoKGEgLyBiKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICBpZihzY2FuZigiJWxmIiwgJmRhdGEpICE9IDEpewogICAgICAgICAgICAgICAgICAgIHByaW50ZigiSW52YWxpZCBpbnB1dFxuIik7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgcHVzaChkYXRhKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSA5OgogICAgICAgICAgICAgICAgc2hvd0Fuc3dlcigpOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgcHJpbnRmKCJJbnZhbGlkIGNvbW1hbmRcbiIpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAwOwp9Cg==