神奇的清除栈
【问题描述】
向栈里面输入n个大写字母(用空格隔开),如果输入的字母是C,就需要把前面的字母都删除,最后把剩下的字符按照输入顺序倒序输出,若栈为空,就输出大写字母C。
【输入格式】
两行,第一行包含一个数字n(0<n<100),第二行包含n个大写字母。
【输出格式】
若栈为空,输出大写字母C,若不为空,将字母按输入顺序倒序输出。
【输入样例】
10
A A A B B C D E F R
【输出样例】
R F E D
初学者代码实现,希望有大神指正:
#include
using namespace std;
int top=0,s[21];
void push(int x){
top++;
s[top]=x;
return;
}
void pop(){
if(top>0){
top–;
}
return;
}
int gettop(){
int num=s[top];
return num;
}
int main(){
int n,number;
cin >> n;
for(int i=1;i<=n;i++){
cin >> number;
push(number);
}
for(int i=1;i<=n;i++){
cout << gettop() << ’ ';
pop();
}
return 0;
}