用C语言编写答案:假设给定的整数栈初始状态为空,栈的最大容量为100。从标准输入中输入一组栈操作,按操作顺序输出出栈元素序列。栈操作:1表示入栈操作,后跟一个整数(不为1、0和-1)为入栈元素;0表示出栈操作;-1表示操作结束。 【输入形式】 从标准输入读取一组栈操作,入栈的整数和表示栈操作的整数之间都以一个空格分隔。 【输出形式】 在一行上按照操作的顺序输出出栈元素序列,以一个空格分隔各元素,最后一个元素后也要有一个空格。如果栈状态为空时进行出栈操作,或栈满时进行入栈操作,则输出字符串“error”,并且字符串后也要有一空格。所有操作都执行完后,栈也有可能不为空。
时间: 2023-06-05 12:07:53 浏览: 141
听起来,你需要一个简单的模拟栈数据结构的程序,用于执行栈操作的输入和输出。好的,下面是C语言编写的程序:
```c
#include <stdio.h>
#define MAX_SIZE 100
int stack[MAX_SIZE];
int top_index = -1;
void push(int num) {
if (top_index == MAX_SIZE - 1) {
printf("error ");
return;
}
stack[++top_index] = num;
}
int pop() {
if (top_index == -1) {
printf("error ");
return -1;
}
return stack[top_index--];
}
int main() {
int num;
while (1) {
scanf("%d", &num);
if (num == -1) break; // 结束标志
else if (num == 0) {
int popped = pop();
if (popped != -1) printf("%d ", popped);
} else if (num == 1) {
scanf("%d", &num);
push(num);
} else {
printf("error ");
}
}
while (top_index >= 0) printf("%d ", pop());
return 0;
}
```
当你运行这个程序并输入一组符合上述要求的栈操作时,程序将输出出栈元素序列,或者在出现错误情况时输出“error”。
阅读全文