#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 : \n " ) ;
if ( ! resp) {
break ;
}
switch ( resp) {
case 1 :
push( data) ;
break ;
case 2 :
break ;
}
}
for ( int i = 0 ; i < sp; i ++ ) {
printf ( "stack[%d]=%d" , i
, stack
[ i
] ) ; }
return 0 ;
}
void push( int value) {
if ( sp >= SIZE) {
printf ( "スタックが満杯で入りませんでした。\n " ) ; } else {
stack[ sp++ ] = value;
}
}
int pop( void ) {
if ( sp <= 0 ) {
printf ( "スタックが空で取り出せませんでした。\n " ) ; return 0 ;
} else {
return stack[ -- sp] ;
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNJWkUgNQppbnQgc3RhY2tbU0laRV07CmludCBzcDsKCnZvaWQgcHVzaChpbnQgdmFsdWUpOwppbnQgcG9wICh2b2lkKTsKCmludCBtYWluKHZvaWQpIHsKCXNwID0gMDsKCWludCByZXNwLGRhdGE7Cgl3aGlsZSgxKXsKCQlwcmludGYoIjEgOiBwdXNoIDIgOiBwb3AgMCA6IGVuZCA6IFxuIik7CgkJc2NhbmYoIiVkIiwmcmVzcCk7CgkJCgkJaWYoIXJlc3ApewoJCQlicmVhazsKCQl9CgkJc3dpdGNoKHJlc3ApewoJCQljYXNlIDE6CgkJCSAgICAgc2NhbmYoIiVkIiwmZGF0YSk7CgkJCSAgICAgcHVzaChkYXRhKTsKCQkJICAgICBicmVhazsKCQkJY2FzZSAyOgoJCQkgICAgIHByaW50ZigicG9wIDogJWRcbiIscG9wKCkpOwoJCQkgICAgIGJyZWFrOwoJCX0KCQlwcmludGYoInNwPSVkIixzcCk7Cgl9CglwcmludGYoIlxuIik7Cglmb3IoaW50IGkgPSAwO2kgPCBzcDtpICsrKXsKCQlwcmludGYoInN0YWNrWyVkXT0lZCIsaSxzdGFja1tpXSk7Cgl9CglyZXR1cm4gMDsKfQoKdm9pZCBwdXNoKGludCB2YWx1ZSl7CglpZihzcCA+PSBTSVpFKXsKCQlwcmludGYoIuOCueOCv+ODg+OCr+OBjOa6gOadr+OBp+WFpeOCiuOBvuOBm+OCk+OBp+OBl+OBn+OAglxuIik7Cgl9ZWxzZXsKCQlzdGFja1tzcCsrXSA9IHZhbHVlOwoJfQp9CgppbnQgcG9wKHZvaWQpewoJaWYoc3AgPD0gMCl7CgkJcHJpbnRmKCLjgrnjgr/jg4Pjgq/jgYznqbrjgaflj5bjgorlh7rjgZvjgb7jgZvjgpPjgafjgZfjgZ/jgIJcbiIpOwoJCXJldHVybiAwOwoJfWVsc2V7CgkJcmV0dXJuIHN0YWNrWy0tc3BdOwoJfQp9Cg==