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