一道实验题能不能救救孩子

利用顺序表建立一个栈。分别编写入栈函数和出栈函数,对键盘输入的,数量未知的整数进行出栈和入栈的操作。每次调用入栈函数或出栈函数时,实现一个整数的入栈或出栈;出栈的整数需要打印出来。

运行结果及代码如下,如有帮助,请帮忙采纳一下,谢谢。

img

代码:

#include<stdio.h>
#define MAXLEN 100

typedef int elementtype;

typedef struct  
{
    elementtype element[MAXLEN];
    int top;
}SqStack;



SqStack InitStack_sq()
{
    SqStack s;
    s.top = -1;
    return s;
}



int Push_sq(SqStack* s,elementtype x)
{
    if(s->top == MAXLEN-1)
        return 0;

    s->top++;
    s->element[s->top] = x;
    return 1;
}

int Pop_sq(SqStack* s,elementtype* x)
{
    if(s->top == -1)
        return 0;
    *x = s->element[s->top];
    s->top--;
}



int main()
{
    SqStack sk = InitStack_sq();
    int op,data,res;
    while(1)
    {
        printf("请选择你的操作:1.入栈  2.出栈  3.退出\n");
        scanf("%d",&op);
        switch(op)
        {
        case 1:
            printf("请输入一个数据:");
            scanf("%d",&data);
            Push_sq(&sk,data);
            break;
        case 2:
            res = Pop_sq(&sk,&data);
            if(res)
                printf("出栈数据:%d\n",data);
            else
                printf("出栈失败\n");
            break;
        case 3:
            return 0;
        }
    }

    return 0;
}

参考: