fork download
  1. #include <stdio.h>
  2.  
  3. #define SIZE 5
  4. int stack[5];
  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;
  14. int data;
  15.  
  16. while(1){
  17. printf("1:push 2:pop 0:end : ");
  18. scanf("%d", &resp);
  19.  
  20. if(!resp) break;
  21.  
  22. switch(resp){
  23. case 1: printf("push:");
  24. scanf("%d",&data);
  25. push( data );
  26. break;
  27.  
  28. case 2: pop();
  29. break;
  30. }
  31. printf("sp=%d\n", sp);
  32. }
  33. printf("\n");
  34. for(int i=0; i<sp; i++){
  35. printf("stack[%d]=%d \n", i, stack[i]);
  36. }
  37. return 0;
  38. }
  39.  
  40. void push(int value)
  41. {
  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. }
  57. // your code goes here
  58.  
Success #stdin #stdout 0s 5320KB
stdin
3
4
2
0
stdout
1:push 2:pop 0:end : sp=0
1:push 2:pop 0:end : sp=0
1:push 2:pop 0:end : スタックが空で取り出せませんでした
sp=0
1:push 2:pop 0:end :