为什么用dev编写c++代码,编译时会跳出一个文件,无法编译

请大家帮帮忙,谢谢了,用dev编写的时候总是出来这样一个文件 说有错误 怎么办怎么办

img


img

Push函数和bianli函数有点问题,修改的地方有注释,sqstack.h和main.cpp没改。
stdlib.h这个头文件用不到,在sqstack.h和sqstack.cpp中删掉即可。
sqstack.cpp代码:

//#include <stdlib.h>
#include "sqstack.h"

void menu()
{
    sqstack s;
    int n;//选项
    ElemType e;
    while(1)
    {
        cout <<"1.初始化栈 2.入栈 3.删除栈顶元素"<<endl;
        cout <<"4.去栈顶元素 5.遍历 6.栈是否为空"<<endl;
        cout <<"请输入选择项:";
        cin >> n;
        switch(n)
        {
        case 1:
            if(InitStack(s) != ok)
                cout <<"初始化失败!"<<endl;
            else
                cout <<"初始化成功!"<<endl;
            break;
        case 2:
            //修改1,这里e没有初始化,需要输入e的值,添加如下两句
            cout <<"请输入需要插入的数据:";
            cin >> e;

            if(Push(s,e)==ok)
            {
                //bianli(s);
                cout << "入栈成功!"<<endl;
            }else
                cout <<"操作错误!"<<endl;
            break;
        case 3:
            if(Pop(s)==ok)
                cout <<"删除成功!"<<endl;
            else
                cout <<"删除失败!"<<endl;
            break;
        case 4:
            if(GetTop(s,e)==ok)
                cout <<"取出成功!"<<endl;
            else
                cout <<"取出失败!"<<endl;
        case 5:
            bianli(s);
            break;
        case 6:
            StackEmpty(s);
            break;
        default:
            cout <<"输入错误!"<<endl;
        }
    }
}

status InitStack(sqstack &s)
{
    s.elem = new ElemType[MASXIZE];
    if(!s.elem) exit(OVERFLOW);
    s.top = -1;
    return ok;
}

status Push(sqstack &s,ElemType e)
{
    if(s.top == MASXIZE-1 || s.top <-1) //修改 这里需要判断s.top是否小于-1,也就是判断是否进行过初始化
        return error;
    //修改2,输入要放在Push函数的外面
    //cout <<"输入要插入的数:";
    //cin >> e;
    s.top++;
    s.elem[s.top] = e;
    return ok;
}

status Pop(sqstack &s)
{
    if(s.top <= -1) //修改,这里改成<=-1
        return error;
    s.top--;
    return ok;
}

status GetTop(sqstack &s,ElemType &e)
{
    if(s.top <= -1)//修改,这里改成<=-1
        return error;
    e = s.elem[s.top];
    cout <<"栈顶元素为:"<<e<<endl;
    return ok;
}

status bianli(sqstack s)
{
    int i;
    ElemType e;
    if(s.top <= -1) //修改,这里改成<=-1
        return error;
    //修改3
    for(i=0;i<=s.top;i++)
    {
        e = s.elem[i];
        cout << e<<" ";
    }
    cout <<endl;
    return ok;
}

bool StackEmpty(sqstack s)
{
    return s.top <= -1; //修改,这里改成<=-1
}

大概率是你的库或者库函数出错了。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632