#include <stdio.h>
#define SIZE 7
int stack[SIZE];
int sp;
void push(int value);
int pop(void);
int main(void)
{
sp = 0;
int resp, data;
while(1){
printf("1:push 2:pop 0:end : ");
if(!resp) break;
switch(resp){
case 1:
push(data);
break;
case 2:
pop();
break;
}
}
for(int 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+CgojZGVmaW5lIFNJWkUgNwppbnQgc3RhY2tbU0laRV07CmludCBzcDsKCnZvaWQgcHVzaChpbnQgdmFsdWUpOwppbnQgcG9wKHZvaWQpOwoKaW50IG1haW4odm9pZCkKewogICAgc3AgPSAwOwoKICAgIGludCByZXNwLCBkYXRhOwoKICAgIHdoaWxlKDEpewogICAgICAgIHByaW50ZigiMTpwdXNoICAyOnBvcCAgMDplbmQgOiAiKTsKICAgICAgICBzY2FuZigiJWQiLCAmcmVzcCk7CgogICAgICAgIGlmKCFyZXNwKSBicmVhazsKCiAgICAgICAgc3dpdGNoKHJlc3ApewogICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICBwcmludGYoInB1c2ggOiAiKTsKICAgICAgICAgICAgICAgIHNjYW5mKCIlZCIsICZkYXRhKTsKICAgICAgICAgICAgICAgIHB1c2goZGF0YSk7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgIHBvcCgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQoKICAgICAgICBwcmludGYoInNwPSVkXG4iLCBzcCk7CiAgICB9CgogICAgcHJpbnRmKCJcbiIpOwoKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBzcDsgaSsrKXsKICAgICAgICBwcmludGYoInN0YWNrWyVkXT0lZCBcbiIsIGksIHN0YWNrW2ldKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQoKCnZvaWQgcHVzaChpbnQgdmFsdWUpCnsKCQoJaWYoc3A+PVNJWkUpewoJCXByaW50Zigi44K544K/44OD44Kv44GM5rqA5p2v44Gn5YWl44KK44G+44Gb44KT44Gn44GX44GfXG4iKTsKCX0KCQllbHNlewoJCQkgc3RhY2tbc3ArK109dmFsdWU7CgkJfQp9CgkJaW50IHBvcCh2b2lkKQoJCXtpZihzcDw9MCl7CgkJCXByaW50Zigi44K544K/44OD44Kv44GM56m644Gn5Y+W44KK5Ye644Gb44G+44Gb44KT44Gn44GX44GfXG4iKTsKCQkJcmV0dXJuIDA7fQoJCQllbHNle3JldHVybiBzdGFja1stLXNwXTsKCQl9CgkKfQ==