#include <stdio.h>
#include <stdlib.h>
#define SIZE 100



void clearstack(int *sp);
void push(int data, int stack[], int *sp);
void pop(int stack[], int *sp);
void display(int stack[], int sp);



void clearstack(int *sp){
	*sp = 0;
}

void push(int data, int stack[], int *sp){
	if(*sp>=SIZE)
		printf("スタック容量を超えました\n");
	*sp = *sp+1;
	stack[*sp] = data;
}

void pop(int stack[], int *sp){
	if(sp<=0)
		printf("スタックに値が入っていません\n");
	printf("取り出した値は%d\n",stack[*sp]);
	*sp = *sp - 1;
}

void display(int stack[], int sp){
	printf("***************\n");
	while(sp>0){
		printf("%d\n",stack[sp]);
		sp--;
	}
}

int main(void){
	int stack[SIZE];
	int sp = 0;
	int i;
	for(i=0;i<5;i++){
		push(i*2,stack,&sp);
	}
	display(stack,sp);
	pop(stack,&sp);
	pop(stack,&sp);
	push(100,stack,&sp);
	display(stack,sp);
	clearstack(&sp);
	display(stack,sp);
	return 0;
}
	