木木em哈哈 2022-05-10 20:25 采纳率: 0%
浏览 302
已结题

C2100非法的间接寻址问题求解

倒数11和倒数17行出错

#include<iostream>
using namespace std;
#define SElemType student

#define Maxsize 100
typedef struct
{
    int id;
    int gender;
    string name;
    int age;
}student;
typedef struct
{
    SElemType* base;//栈底指针
    SElemType* top;//栈顶指针
    int stacksize;//栈可用的最大容量
}SqStack;
int InitStack(SqStack& S)
{
    //构造一个空栈
    S.base = new SElemType[Maxsize];//为顺序栈动态分配一个最大容量为Maxsize的数组空间
    if (!S.base)
        exit(OVERFLOW);//存储分配失败
    S.top = S.base;//栈顶指针等于栈底指针
    S.stacksize = Maxsize;
    return 0;
}
//顺序栈的入栈
bool Push(SqStack* S, SElemType *e)
{
    if (S->top - S->base == Maxsize)
        return false;//栈满
    S->top->id = e->id;
    S->top->age = e->age;
    S->top->gender = e->gender;
    S->top->name = e->name;
    S->top++;
    return true;
}
//2、出栈
SElemType PopSqStack(SqStack* s)
{
    if (s->top == s->base)
        cout << "erroe\n" << endl;
    else
    {
        cout << "OK\n" << endl;
        return *(s->top - 1);
    }
}

//菜单
void menu()
{
    cout << "***************************************************************************" << endl;
    cout << "***********************************1、入栈*********************************" << endl;
    cout << "***********************************2、出栈*********************************" << endl;
    cout << "***********************************0、退出*********************************" << endl;
    cout << "***************************************************************************" << endl;
}
int main()
{
    int choice;
    int length;
    student a;
    SElemType* b=new SElemType;
    SqStack S;
    InitStack(S);
    void menu();
    cout << "输入选择" << endl;
    cin >> choice;
    switch (choice)
    {
        case 1:
        {
            cout << "输入入栈的个数" << endl;
            cin >> length;
            for (int i = 1; i <= length; i++)
            {
                cout << "输入第" << i << "个id,age,name,gender" << endl;
                cin >> a.id >> a.age >> a.name >> a.gender;
                Push(*S, a);                                                //这错了
            }
            break;
        }
        case 2:
        {
            b = PopSqStack(*S);                                                    //这也错了
            cout << b->name << " " << b->age << " " << b->gender << " " << b->id << " " << endl;
            break;
        }
        default:
            cout << "菜单序号输入有误!" << endl;
            system("pause");
            break;
    }
    return 0;
}


  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 5月18日
    • 创建了问题 5月10日

    悬赏问题

    • ¥15 有人会用py或者r画这种图吗
    • ¥15 MOD04_3K图像预处理
    • ¥15 [VASP]关于超胞大小和k 点网格的收敛性测试
    • ¥15 pip下载paddle2onnx离谱错误
    • ¥60 db2move nlzxams import 导出db2备份数据报错
    • ¥15 关于#python#的问题:全文总结功能咨询
    • ¥15 俄罗斯方块中无法同时消除多个满行
    • ¥15 c#转安卓 java html
    • ¥15 使用gojs3.0,如何在nodeDataArray设置好text的位置,再go.TextBlock alignment中进行相应的改变
    • ¥15 psfusion图像融合指标很低