fork download
  1. #include <stdio.h>
  2.  
  3. #define SIZE 5
  4. int stack[SIZE];
  5. int sp;
  6.  
  7. void push(int data) {
  8. if (sp < SIZE) {
  9. stack[sp++] = data;
  10. } else {
  11. printf("Stack Overflow\n");
  12. }
  13. }
  14. void pop() {
  15. if (sp > 0) {
  16. sp--;
  17. printf("popped: %d\n", stack[sp]);
  18. } else {
  19. printf("Stack Underflow\n");
  20. }
  21. }
  22.  
  23.  
  24. int main(void)
  25. {
  26. sp = 0;
  27. int resp, data;
  28.  
  29. while(1){
  30. printf("1: push 2: pop 0: end : ");
  31. scanf("%d", &resp);
  32.  
  33. if(!resp) break;
  34.  
  35. switch(resp){
  36. case 1: printf("push : ");
  37. scanf("%d", &data);
  38. push( data );
  39. break;
  40. case 2: pop();
  41. break;
  42. }
  43. printf("sp=%d\n", sp);
  44. }
  45.  
  46. printf("\n");
  47. for(int i=0; i<sp; i++){
  48. printf("stack[%d]=%d \n", i, stack[i]);
  49. }
  50.  
  51. return 0;
  52. }
Success #stdin #stdout 0s 5320KB
stdin
1
10
0
2
stdout
1: push  2: pop  0: end : push : sp=1
1: push  2: pop  0: end : 
stack[0]=10