2乘2数组第一维_等级考试2级(C/C++)专题三:一维数组应用实例

实例1:统计天数

题目描述

炎热的夏日,KC 非常的不爽。他宁可忍受北极的寒冷,也不愿忍受厦门的夏天。最近,他开始研究天气的变化。他希望用研究的结果预测未来的天气。

经历千辛万苦,他收集了连续 N(1≤N≤106) 的最高气温数据。

现在,他想知道最高气温一直上升的最长连续天数。

输入

第 1 行:一个整数 N 。1≤N≤106 

第 2 行:N个空格隔开的整数,表示连续 N 天的最高气温。0≤ 最高气温 ≤109  。

输出

1 行:一个整数,表示最高气温一直上升的最长连续天数。

样例输入
10
1 2 3 2 4 5 6 8 5 9
样例输出
5

f1a33191f6333005342ca1ce8bb0f1a3.png

77d7ec0b1f9c0c4a166558945eeb233b.png

实例2: 洗牌

题目描述

魔术师刘谦要洗牌了,请你写个程序来模拟洗牌的过程。
    洗牌分弹牌和切牌两个操作:
    弹牌——将牌组等分成两份,然后交错相插,如当前牌为1 2 3 4 5 6,现在开始弹牌,先将牌分成1 2 3和4 5 6,然后交错相插,变成1 4 2 5 3 6
    切牌——从牌堆里面拿出连续的一段,然后放到顶端。如当前牌为1 2 3 4 5 6,切完2~5之间的4张牌后变成2 3 4 5 1 6。

输入

第一行为两个正整数N和M,N表示牌堆里面有N张牌,M表示共进行M次洗牌的操作。
    第二行有N个正整数,代表N张牌上的数字,刘谦用的牌其实就是标有数字的卡片。
    接下来M行,每行一个整数或者三个整数。
    如果第一个数为0,那么这一行就这只有一个数,表示弹牌。
    如果第一个数为1,那么后面跟着两个正整数b 和e,表示把b~e这段牌切到顶端。

输出

输出M次操作后从第一张开始的每张牌上的数字。相邻两数严格用一个空格隔开

样例输入
10 5
46 21 22 1 20 46 50 7 42 19
1 4 8
1 4 4
1 4 7
0
0
样例输出

46 22 1 21 7 42 20 50 46 19

b540145a2c05dcc32eda8bf94e19c597.png

样例程序:

#include

using namespace std;

int main()

{

    int n,m,a,b,e;

    cin>>n>>m;

    int card[60],card2[60];

    for(int i=1;i<=n;i++)

        cin>>card[i];

    for(int i=1;i<=m;i++)

    {

        cin>>a;

        if(a==1)

        {

            cin>>b>>e;

            for(int j=b;j<=e;j++)

                card2[j-b+1]=card[j];

            for(int j=1;j

                card2[e-b+j+1]=card[j];

            for(int j=e+1;j<=n;j++)

                card2[j]=card[j];

        }

        else

        {

            for(int j=1;j<=n/2;j++)

            {

                card2[2*j-1]=card[j];

                card2[2*j]=card[j+n/2];

            }

        }   

        for(int i=1;i<=n;i++)

            card[i]=card2[i];

    }

    for(int i=1;i

        cout<<card2[i]<<" ";

    cout<<card2[n]<

    return 0;

}

运行结果如下:

22b1adb4dee858b4445be980b92387e2.png

中国电子学会青少年软件编程等级考试2级(C/C++)专题二:一维数组

中国电子学会青少年软件编程等级考试2级(C/C++)专题一:数制和进制转换

C+ +编程题解:选班委(一维数组)

相关编程技术和学习等方面的问题请联系下方老师咨询

b3ca2cc2aee3a460495a256aac20b693.png

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值