мой код не выполняется должным образом из-за логической ошибки - PullRequest
0 голосов
/ 31 января 2019

Я работаю над программой для изучения концепции стека-массива.Я сталкиваюсь с ошибкой, когда стек не отображается должным образом [функция display ()].Где я иду не так?

Я пытался проверить код дважды.он не отображает вывод display ()

#include <iostream>
#include <conio.h>
#include <process.h>

using namespace std;
const int size =50;
int pop(int [] ,int&);
int push(int [] ,int , int);
void display(int [] ,int);
int main()
{
    int s[size],item,top=-1,res;
    char ch='y';
while (ch=='y'||ch=='Y')
{
    cout<<"\n Enter the item for insertion: ";
    cin>>item;
    res=push(s,top,item);
    if(res==-1)
    {
        cout<<"\nOVERFLOW!!!";
        system("pause");
        exit(1);
    }
    cout<<"\nThe stack is :"<<endl;
    display(s,top);
    cout<<"More elements??";
    cin>>ch;
}
cout<<"Now deletion begins\n";
ch='y';
while(ch=='y'||ch=='Y')
{
    res=pop(s,top);
    if(res==-1)
    {
        cout<<"UNDERFLOW!!";
        system("pause");
        exit(1);
    }
    else
    {
        cout<<"\nElement deleted is: "<<res<<endl;
        cout<<"\n The stack now is: "<<endl;
        display(s,top);
    }
    cout<<"delete elements??";
    cin>>ch;
}
getch();
return 0;
}

int push(int s[],int top,int ele)
{
if(top==size-1) return-1;
else
{
    top++;
     s[top]=ele;
}
return 0;
}
int pop (int s[],int &top)
{
int ret;
if(top==-1) return -1;
else 
{
    ret=s[top];
    top--;
}
return ret;
}

void display (int s[], int top)
{
if(top==-1) return;
cout<< s[top]<<"<--"<<endl;
for(int i=top-1;i>=0;i--)
    {
        cout<<s[i]<<endl;
    }
}

функция display () должна отображать элементы массива в виде стека.

...