#include<stdio.h>
#define SIZE 5
int stack[SIZE];
int sp;
void push(int value);
int pop(void);
int main(void)
{
sp = 0;
int resp, data;
while(1){
printf("1:push 2:pop 0:end : ");
scanf("%d", &resp);
if(!resp) break;
switch(resp){
case 1: printf("push : "); scanf("%d", &data);
push( data );
break;
case 2: pop();
break;
}
printf("sp=%d\n", sp);
}
printf("\n");
for(int i=0; i<sp; i++){
printf("stack[%d]=%d \n", i, stack[i]);
}
return 0;
}
void push(int value)
{
if(sp >= SIZE){
printf("スタックが満杯で入りませんでした\n");
}else{
stack[sp++] = value;
}
}
int pop(void)
{
if(sp <= 0){
printf("スタックが空で取り出せませんでした\n");
return 0;
}else{
return stack[--sp];
}
}
このような状況でenter input (stdin)に1 10 1 20 1 30をいれ、最後にスタックのデータをdisplay関数を使用して表示したいのですがわからないです。
調べてみたところmain関数末尾のforループとその中のprintfを取り出して別関数にし、取り出した箇所から呼び出すとかいてあるのですが、わからないです。
ideonで行いました。
回答1件
あなたの回答
tips
プレビュー