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

stdout
1:push 2:pop 0:end: push: sp=1
1:push 2:pop 0:end: pop = 2
sp=0
1:push 2:pop 0:end: karadayo
pop = 0
sp=0
1:push 2:pop 0:end: push: sp=1
1:push 2:pop 0:end: stack[0]=2