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

stack[0]=10