fork 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. {
  12. sp = 0;
  13. int resp, data;
  14.  
  15. while(1){
  16. if(!resp) break;
  17.  
  18. switch(resp){
  19. case 1:
  20. printf("push : ");
  21. scanf("%d", &data);
  22. push(data);
  23. break;
  24. case 2:
  25. pop();
  26. break;
  27. }
  28.  
  29. printf("sp=%d\n", sp);
  30. }
  31.  
  32. printf("\n");
  33. for(int 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. {
  41. if(sp >= SIZE){
  42. printf("スタックが満杯で入りませんでした\n");
  43. } else {
  44. stack[sp++] = value;
  45. }
  46. }
  47.  
  48. int pop(void)
  49. {
  50. if(sp <= 0){
  51. printf("スタックが空で取り出せませんでした\n");
  52. return 0;
  53. } else {
  54. return stack[--sp];
  55. }
  56. }
Success #stdin #stdout 0.01s 5316KB
stdin
Standard input is empty
stdout