#include<stdio.h>
#define sz 100
int arr[ sz] ,top= 0 ;
void push( int val)
{
if ( top>= sz)
printf ( "No more space on Stack.\n " ) ;
else
arr[ top++ ] = val;
}
void pop( )
{
if ( top<= 0 )
{
printf ( "Stack is empty\n " ) ;
}
else
{
top-- ;
printf ( "Popped element: %d\n " ,arr[ top] ) ;
}
}
void printlist( )
{
int i;
for ( i= 0 ; i< top; i++ )
printf ( "%d " ,arr[ i] ) ;
puts ( "" ) ;
}
int main( )
{
int num,val;
bool getout= false ;
while ( true )
{
printf ( "Enter your choice:\n " ) ;
printf ( "1. Push\n 2. Pop\n 3. Exit\n " ) ;
scanf ( "%d" ,& num) ;
switch ( num)
{
case 1 :
scanf ( "%d" ,& val) ;
push( val) ;
printlist( ) ;
puts ( "" ) ;
break ;
case 2 :
pop( ) ;
printlist( ) ;
puts ( "" ) ;
break ;
case 3 :
getout= true ;
break ;
}
if ( getout== true )
break ;
}
return 0 ;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2RlZmluZSBzeiAxMDAKCmludCBhcnJbc3pdLHRvcD0wOwoKdm9pZCBwdXNoKGludCB2YWwpCnsKICAgIGlmKHRvcD49c3opCiAgICAgICAgcHJpbnRmKCJObyBtb3JlIHNwYWNlIG9uIFN0YWNrLlxuIik7CiAgICBlbHNlCiAgICAgICAgYXJyW3RvcCsrXT12YWw7Cn0KCnZvaWQgcG9wKCkKewogICAgaWYodG9wPD0wKQogICAgewogICAgICAgIHByaW50ZigiU3RhY2sgaXMgZW1wdHlcbiIpOwogICAgfQogICAgZWxzZQogICAgewogICAgICAgIHRvcC0tOwogICAgICAgIHByaW50ZigiUG9wcGVkIGVsZW1lbnQ6ICVkXG4iLGFyclt0b3BdKTsKICAgIH0KfQoKdm9pZCBwcmludGxpc3QoKQp7CiAgICBpbnQgaTsKICAgIGZvcihpPTA7aTx0b3A7aSsrKQogICAgICAgIHByaW50ZigiJWQgIixhcnJbaV0pOwogICAgcHV0cygiIik7Cn0KCmludCBtYWluKCkKewogICAgaW50IG51bSx2YWw7Cglib29sIGdldG91dD1mYWxzZTsKCgl3aGlsZSh0cnVlKQoJewoJICAgIHByaW50ZigiRW50ZXIgeW91ciBjaG9pY2U6XG4iKTsKCSAgICBwcmludGYoIjEuIFB1c2hcbjIuIFBvcFxuMy4gRXhpdFxuIik7CgkgICAgc2NhbmYoIiVkIiwmbnVtKTsKCgkJc3dpdGNoKG51bSkKCQl7CiAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgIHNjYW5mKCIlZCIsJnZhbCk7CgogICAgICAgICAgICAgICAgcHVzaCh2YWwpOwoKICAgICAgICAgICAgICAgIHByaW50bGlzdCgpOwogICAgICAgICAgICAgICAgcHV0cygiIik7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgcG9wKCk7CgogICAgICAgICAgICAgICAgcHJpbnRsaXN0KCk7CiAgICAgICAgICAgICAgICBwdXRzKCIiKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgICBnZXRvdXQ9dHJ1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwoJCX0KCiAgICAgICAgaWYoZ2V0b3V0PT10cnVlKQogICAgICAgICAgICBicmVhazsKCX0KCglyZXR1cm4gMDsKfQoK