给定一个初始为空的栈和一系列进栈、出栈操作,请编写程序输出经过这些操作后栈的元素。栈的元素值均为整数。的C语言程序
时间: 2023-10-18 20:15:26 浏览: 186
好的,下面是一个示例程序:
```c
#include <stdio.h>
#define MAX_SIZE 100
int stack[MAX_SIZE]; // 栈
int top = -1; // 栈顶指针
// 进栈操作
void push(int x) {
if (top == MAX_SIZE - 1) {
printf("Stack overflow\n");
return;
}
stack[++top] = x;
}
// 出栈操作
int pop() {
if (top == -1) {
printf("Stack underflow\n");
return -1;
}
return stack[top--];
}
int main() {
int n; // 操作数
scanf("%d", &n);
while (n--) {
int op, x;
scanf("%d", &op);
if (op == 1) { // 进栈
scanf("%d", &x);
push(x);
} else if (op == 2) { // 出栈
printf("%d\n", pop());
} else {
printf("Invalid operation\n");
}
}
return 0;
}
```
程序中,我们用数组 `stack` 存储栈中的元素,用变量 `top` 记录栈顶指针。进栈操作通过 `push` 函数实现,出栈操作通过 `pop` 函数实现。在主函数中,我们根据输入的操作数循环执行进栈、出栈操作,最后输出栈中剩余的元素。
阅读全文