#include <stdio.h>
#define SIZE 5
int stack[SIZE];
int sp;
void push(int value);
int pop(void);
int main(void)
{
int resp, data;
int i;
sp = 0;
while(1){
printf("1: push 2:pop 0:end : ");
/* 【修正】数字が正しく入力されなかったらループを抜ける安全装置 */
if (scanf("%d", &resp
) != 1) { printf("\n不正な入力、または入力が終了しました。\n"); break;
}
if(!resp) break;
switch(resp){
case 1:
if (scanf("%d", &data
) != 1) break; push( data );
break;
case 2:
pop();
break;
}
}
for(i=0; i<sp; i++){
printf("stack[%d]=%d\n", i
, stack
[i
]); }
return 0;
}
void push(int value)
{
if(sp >= SIZE){
}else{
stack[sp++] = value;
}
}
int pop(void)
{
if(sp <= 0){
printf("スタックが空で取り出せませんでした\n"); return 0;
}else{
return stack[--sp];
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNJWkUgNQppbnQgc3RhY2tbU0laRV07CmludCBzcDsKCnZvaWQgcHVzaChpbnQgdmFsdWUpOwppbnQgcG9wKHZvaWQpOwoKaW50IG1haW4odm9pZCkKewogICAgaW50IHJlc3AsIGRhdGE7CiAgICBpbnQgaTsKCiAgICBzcCA9IDA7CgogICAgd2hpbGUoMSl7CiAgICAgICAgcHJpbnRmKCIxOiBwdXNoIDI6cG9wIDA6ZW5kIDogIik7CiAgICAgICAgCiAgICAgICAgLyog44CQ5L+u5q2j44CR5pWw5a2X44GM5q2j44GX44GP5YWl5Yqb44GV44KM44Gq44GL44Gj44Gf44KJ44Or44O844OX44KS5oqc44GR44KL5a6J5YWo6KOF572uICovCiAgICAgICAgaWYgKHNjYW5mKCIlZCIsICZyZXNwKSAhPSAxKSB7CiAgICAgICAgICAgIHByaW50ZigiXG7kuI3mraPjgarlhaXlipvjgIHjgb7jgZ/jga/lhaXlipvjgYzntYLkuobjgZfjgb7jgZfjgZ/jgIJcbiIpOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CgogICAgICAgIGlmKCFyZXNwKSBicmVhazsKCiAgICAgICAgc3dpdGNoKHJlc3ApewogICAgICAgICAgICBjYXNlIDE6IAogICAgICAgICAgICAgICAgcHJpbnRmKCJwdXNoIDogIik7IAogICAgICAgICAgICAgICAgaWYgKHNjYW5mKCIlZCIsICZkYXRhKSAhPSAxKSBicmVhazsKICAgICAgICAgICAgICAgIHB1c2goIGRhdGEgKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDI6IAogICAgICAgICAgICAgICAgcG9wKCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgcHJpbnRmKCJzcD0lZFxuIiwgc3ApOwogICAgfQogICAgcHJpbnRmKCJcbiIpOwogICAgCiAgICBmb3IoaT0wOyBpPHNwOyBpKyspewogICAgICAgIHByaW50Zigic3RhY2tbJWRdPSVkXG4iLCBpLCBzdGFja1tpXSk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0KCnZvaWQgcHVzaChpbnQgdmFsdWUpCnsKICAgIGlmKHNwID49IFNJWkUpewogICAgICAgIHByaW50Zigi44K544K/44OD44Kv44GM5rqA5p2v44Gn5YWl44KK44G+44Gb44KT44Gn44GX44GfXG4iKTsKICAgIH1lbHNlewogICAgICAgIHN0YWNrW3NwKytdID0gdmFsdWU7CiAgICB9Cn0KCmludCBwb3Aodm9pZCkKewogICAgaWYoc3AgPD0gMCl7CiAgICAgICAgcHJpbnRmKCLjgrnjgr/jg4Pjgq/jgYznqbrjgaflj5bjgorlh7rjgZvjgb7jgZvjgpPjgafjgZfjgZ9cbiIpOwogICAgICAgIHJldHVybiAwOwogICAgfWVsc2V7CiAgICAgICAgcmV0dXJuIHN0YWNrWy0tc3BdOwogICAgfQp9Cg==