使用c语言编写一个程序,手动输入一组元素并将一个顺序栈的元素依次取出,并打印其元素值。
时间: 2024-04-30 10:23:10 浏览: 6
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 10 // 栈的最大容量
typedef struct {
int data[MAX_SIZE]; // 存储元素的数组
int top; // 栈顶指针
} SeqStack;
// 初始化栈
void initStack(SeqStack *s) {
s->top = -1;
}
// 判断栈是否为空
int isStackEmpty(SeqStack *s) {
return s->top == -1;
}
// 判断栈是否已满
int isStackFull(SeqStack *s) {
return s->top == MAX_SIZE - 1;
}
// 入栈操作
void push(SeqStack *s, int x) {
if (isStackFull(s)) {
printf("Stack is full.\n");
return;
}
s->top++;
s->data[s->top] = x;
}
// 出栈操作
int pop(SeqStack *s) {
if (isStackEmpty(s)) {
printf("Stack is empty.\n");
return -1;
}
int x = s->data[s->top];
s->top--;
return x;
}
int main() {
SeqStack s;
initStack(&s);
int n, x;
printf("Enter the number of elements: ");
scanf("%d", &n);
printf("Enter the elements: ");
for (int i = 0; i < n; i++) {
scanf("%d", &x);
push(&s, x);
}
printf("Elements in the stack: ");
while (!isStackEmpty(&s)) {
printf("%d ", pop(&s));
}
printf("\n");
return 0;
}
```