Я кодировал для стека, используя массивы, но какой бы элемент я не помещал в стек, элемент отображается как ноль

Ребята, я новичок в этом вопросе, поэтому, пожалуйста, используйте меньше технических вопросов. Я также приложил скриншот полученной информации. Как видно на изображении, отображаемый элемент стека равен 0, а я ввел 10

#include<stdio.h>
#include<conio.h>
#include<process.h>
#define STACK_SIZE 5
int top;
int s[5];
int item;
//for push()
void push()
{
 if(top==STACK_SIZE-1)
 {
  printf("\n stack is full, cant insert");
  return;
 }
 top=top+1;
 s[top]=item;
 printf("stck element is %d",item);
}
//pop()
int pop()
{
 if(top==-1)
 {
  return -1;
 }
 return s[top--];
}
//for display()
void display()
{
 int i;
 if(top==-1)
 {
  printf("\n stack is empty");
  return;
 }
 printf("\n Contents of stack is\n");
 for(i=0;i<=top;i++){
 printf("%d",s[i]);}
}
void main()
{
 int item;
 int item_deleted;
 int choice;
 top=-1;
 clrscr();
 for(;;)
 {
  printf("\n 1.Push 2.Pop 3.Display 4.exit");
  scanf("%d",&choice);
  switch(choice)
 {
  case 1: printf("\n enter item to be inserted");
  scanf("%d",&item);
  push();
  break;

  case 2: item_deleted=pop();
  if(item_deleted==-1)
  printf("\n stack is empty");
  else
  printf("\n item deleted=%d",item_deleted);
  break;

  case 3: display();
  break;

  case 4: exit(0);
  default: exit(0);
 }
}


}

Я попытался отладить код, но ничего не работает.

0 ответов

Другие вопросы по тегам