#include <stdio.h>
#define SIZE 5
int stack[SIZE];
int sp;
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];
}
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:
pop();
break;
}
}
for(int i=0;i<sp;i++)
{
printf("stack[%d]=%d\n",i
,stack
[i
]); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNJWkUgNQppbnQgc3RhY2tbU0laRV07CmludCBzcDsKCnZvaWQgcHVzaChpbnQgdmFsdWUpCnsKCWlmKHNwPj1TSVpFKQoJCXByaW50Zigi44K544K/44OD44Kv44GM5rqA5p2v44Gn5YWl44KK44G+44Gb44KT44Gn44GX44Gf44CCXG4iKTsKCWVsc2UKCQlzdGFja1tzcCsrXT12YWx1ZTsKfQppbnQgcG9wKHZvaWQpCnsKCWlmKHNwPD0wKQoJewoJCXByaW50Zigi44K544K/44OD44Kv44GM56m644Gn5Y+W44KK5Ye644Gb44G+44Gb44KT44Gn44GX44Gf44CCXG4iKTsKCQlyZXR1cm4gMDsKCX0KCWVsc2UKCQlyZXR1cm4gc3RhY2tbLS1zcF07Cn0KCmludCBtYWluICh2b2lkKQp7CglzcD0wOwoJaW50IHJlc3AsZGF0YTsKCQoJd2hpbGUoMSkKCXsKCQlwcmludGYoIjE6cHVzaCAyOnBvcCAwOmVuZCBcbiIpOwoJCSBzY2FuZigiJWQiLCAmcmVzcCk7CgkJCgkJaWYoIXJlc3ApIGJyZWFrOwoJCQoJCXN3aXRjaChyZXNwKQoJCXsKCQkJY2FzZSAxOiAKCQkJCXByaW50ZigicHVzaDoiKTsKCQkJCXNjYW5mKCIlZCIsJmRhdGEpOwoJCQkJcHVzaChkYXRhKTsKCQkJCWJyZWFrOwoJCQljYXNlIDI6CgkJCQlwb3AoKTsKCQkJCWJyZWFrOwkKCQl9CgkJcHJpbnRmKCJzcD0lZFxuIixzcCk7Cgl9CglwcmludGYoIlxuIik7Cglmb3IoaW50IGk9MDtpPHNwO2krKykKCXsKCQlwcmludGYoInN0YWNrWyVkXT0lZFxuIixpLHN0YWNrW2ldKTsKCX0KCXJldHVybiAwOwp9Cg==