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