#include <stdio.h>
// push 函式:把元素放到 stack 頂端
void push(int);
// stack 陣列(用來存資料)
int stack[100000];
// top 指向目前 stack 最上面的元素位置
// -1 代表 stack 是空的
int top = -1;
int main()
{
int d; // 操作次數
int i;
int action; // 操作種類 (1,2,3)
int num; // 要 push 的數字
// 讀入操作次數
scanf("%d", &d);
// 執行 d 次操作
for(i = 0; i < d; i++){
// 讀取操作種類
scanf("%d", &action);
switch(action){
case 1:
// 操作 1:push
// 再讀一個數字
scanf("%d", &num);
// 呼叫 push,把數字放進 stack
push(num);
break;
case 2:
// 操作 2:輸出 stack 最上面的元素
// 如果 stack 是空的
if(top == -1){
printf("-1\n");
break;
}
else{
// 輸出最上面的元素(但不刪)
printf("%d\n", stack[top]);
break;
}
case 3:
// 操作 3:刪除最上面的元素(pop)
// 如果不是空的才刪
if(top != -1){
top--; // top 往下移一格(等於刪除)
}
break; // 建議加上,避免未來出錯
}
}
return 0;
}
// push 函式實作
void push(int a){
// 先把 top 往上移,再放入資料
// 例如:top=-1 → 變成 0 → 放入 stack[0]
stack[++top] = a;
}
🔴 若不是一次貼上輸出內容的話會出現一邊輸入一邊輸出的情況
(但結果AC