#include <stdio.h>
#define SIZE 5
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){
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+CgojZGVmaW5lIFNJWkUgNQppbnQgc3RhY2tbU0laRV07CmludCBzcDsKCnZvaWQgcHVzaChpbnQgdmFsdWUpOwppbnQgcG9wKHZvaWQpOwoKaW50IG1haW4odm9pZCkgCnsKCXNwPTA7CglpbnQgcmVzcCxkYXRhOwoJCgl3aGlsZSgxKXsKCQlwcmludGYoIjE6cHVzaCAgMjpwb3AgMDplbmQgOiAiKTsKCQlzY2FuZigiJWQiLCAmcmVzcCk7CgkJCgkJaWYoIXJlc3ApICAgYnJlYWs7CgkJCgkJc3dpdGNoKHJlc3ApewoJCQljYXNlIDE6cHJpbnRmKCJwdXNoIDoiKTsgc2NhbmYoIiVkIiwmZGF0YSk7CgkJCSAgICAgICBwdXNoKCBkYXRhICk7CgkJCSAgICAgICBicmVhazsKCQkJY2FzZSAyOnBvcCgpOwoJCQkgICAgICAgYnJlYWs7CgkJfQoJCXByaW50Zigic3A9JWRcbiIsIHNwKTsKCX0KCXByaW50ZigiXG4iKTsKCWZvcihpbnQgaT0wO2k8c3A7IGkrKyl7CgkJcHJpbnRmKCJzdGFja1slZF09JWRcbiIsIGksIHN0YWNrW2ldKTsKCX0KCQoJcmV0dXJuIDA7Cn0KCnZvaWQgcHVzaChpbnQgdmFsdWUpCnsKCWlmKHNwID49IFNJWkUpewoJCXByaW50Zigi44K544K/44OD44Kv44GM5rqA5p2v44Gn5YWl44KK44G+44Gb44KT44Gn44GX44GfXG4iKTsKCX1lbHNlewoJCXN0YWNrW3NwKytdID0gdmFsdWU7Cgl9Cn0KCmludCBwb3Aodm9pZCkKewoJaWYoc3AgPD0gMCl7CgkJcHJpbnRmKCLjgrnjgr/jg4Pjgq/jgYznqbrjgaflj5bjgorlh7rjgZvjgb7jgZvjgpPjgafjgZfjgZ9cbiIpOwoJCXJldHVybiAwOwoJfWVsc2V7CgkJcmV0dXJuIHN0YWNrWy0tc3BdOwoJfQp9