[ create a new paste ] login | about

Link: http://codepad.org/TaipQ6dl    [ raw code | output | fork ]

C, pasted on Jul 20:
#include <stdio.h>
#include <stdlib.h>
#define MAXBUF 5

void push(int);
int pop(void);
void print_stack(void);

int main(void)
{
  int val = 0;
  int menu;
  do{
    printf("\n**** Stack management program ****\n");
    printf("        1:push\n");
    printf("        2:pop\n\n");
    printf("        9:End\n\n");
    printf("Select a number ? ");
    if (scanf("%d", &menu) != 1) {
      menu = 0;
      while (getchar() != '\n')
    ;
    }
    printf("\n");

    switch(menu){
    case 1:
      printf("Enter a value: ");
      scanf("%d", &val);
      push(val);
      print_stack();
      break;
    case 2:
      val = pop();
      printf("You got a number:%d from stack.\n", val);
      print_stack();
      break;
    case 9:
      break;
    default:
      menu = 0;
      break;
    }
  }while(menu != 9);

  return 0;
}

int sp = 0;     
int buf[MAXBUF];

void push(int f)
{
  if (sp < MAXBUF) {
    buf[sp++] = f;
  }
}

int pop(void)
{
  if (sp > 0)
    return buf[--sp];
  else
    return -1;
}

void print_stack(void)
{
  int i;
  for(i = MAXBUF-1; i >= 0; --i){
    i >= sp ? printf("     |  |\n") : printf("     |%2d|\n", buf[i]);
  }
  printf("     +--+\n");
}
/* end */


Output:
1
Timeout


Create a new paste based on this one


Comments: