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