c++ 栈的基本应用

c++ 栈的基本应用

题目描述

小哼和小哈是一对兄妹,爸妈不在家的时候,小哼自然而然就担负起了照顾妹妹的责任。可别看小哼年纪小,他哄妹妹可有一手呢。今天,小哼就发明了一个小游戏来和小哈玩:
家里有一个长长的网球筒,还有一堆的网球,网球筒的直径很小,每次只能放进一个网球。小哼把每个网球都编了号(所有网球编号不一样),小哼有两种选择:第一种,拿一个小球放进球筒里;第二种,小哼会从球筒里拿出一个网球。而小哈要做的,就是每次小哼从球筒里拿出网球之前,凭记忆力猜出拿出来的网球编号是多少。

分享图片

输入

输入包括多行,每行描述一条操作信息:
1.输入字母’I’,后面紧跟着一个整数x(1<=x<=100),表示当前要在球筒中放入编号为x的球;
2.输入字母’O’,表示当前要从球筒里拿出一个球。

输出

输出拿出网球的顺序,每个编号占一行,如果在取球的时候,球筒中已经没有球,请输出” Empty!”。

样例输入

O
I 6
I 4
O
I 7
I 1
O
I 8
O
O
O
O

样例输出

Empty!
4
1
8
7
6
Empty!

提示

分享图片

代码

#include <bits/stdc++.h>
using namespace std;
long long q[10000000];
char tmp[10];
int f;
int main()
{
    memset(q,sizeof(q));
    char c;
    while (scanf("%c",&c) != EOF)
    {
        long long x;
        if (c == 'I')
        {
            printf("输入 : ");
            cin >> x;
            f ++;//f是栈里球的个数  
            q[f] = x;
        }
        else
        {
            if (f != 0)
            {
                printf("输出 : ");
                printf("%lld\n",q[f]);
                f --;//拿出最后放入的那个球 
            }
            else
            {
                printf("输出 : ");
                printf("Empty!\n");
            }
        }
        gets(tmp);
    }
}

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...