Level 4-2:数组查找——练习4

第1题     筛选玩家

小C今天可开心了,因为学校举行了春游,大家一起来到了游乐园。游乐园里的设施里面需要身高达到X厘米及以上的小朋友才能玩。小C看了看前方的队伍,发现有几个小朋友是不能参加这个游戏的。你能帮助小C把这些小朋友找出来吗?

输入格式

第一行,输入n,[10,25];

第二行,输入n个同学的身高,[60,180].

第三行,输入x,[100,150]。

输出格式

画出编号%16为颜色号,半径为20的圆,并在最后用颜色号14的圆,用p.text()语句输出不能参加的学生的人数;

输入/输出例子1

输入:

5

110  126  139  145  95

130

输出:

样例解释

作答区域

int main(){

    p.up().rt(90);

  int n,a[30],x,b,sum=0;

    cin>>n;

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

    {cin>>a[i];}

    cin>>x;

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

    { if(a[i]<x) 

    {sum++;

    b=i;

    p.oo(20,b%16).fd(40);}

    }

    p.oo(20,14).text(sum);

    return 0;

}


第2题     排名1

 每次英语测试,英语课代表都会帮助英语老师把每个学生的排名计算出来。每次老师只要询问学号k,课代表就能查找出相应的排名。聪明的你,知道课代表是怎么计算的吗?

输入格式

第一行:一个正整数n,范围在[2,50];

第二行:n个同学得成绩。

第三行:一个正整数k,表示询问的学号;

输出格式

宽60高40 的空心矩形,中间用p.text()语句输出对应排名。

输入/输出例子1

输入:

5

10 20 30 40 50

3

输出:

样例解释无作答区域

int main(){

  int n ,a[52],k,b;

    cin>>n;

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

    {cin>>a[i];}

    cin>>k;

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

    {if(a[i]>a[k])

        b++;}

    b++;

    p.r(60,40).text(b);

    p.hide();

    return 0;

}

第3题     差距

每次英语测试,同学们都精益求精,追求卓越,希望自己是最高分!如果不是最高分,同学们会暗暗在心里记下自己和最高分的同学的差距,争取下次能够超越!请你帮助同学们编程画出图形。请先将画笔移动到(-300,0)。

输入格式

第一行:一个正整数n,范围在[2,50];

第二行:n个同学得成绩。

输出格式

N 个整数,表示每个学生的分数和最高分的差距。用统计图画出来,统计图的规格是,宽为20间隔也是20,高度是求得的数值。差距用红色,原来的分值用蓝色。

输入/输出例子1

输入:

5

10 20 30 40 50

输出:

样例解释

作答区域

int main(){

  p.moveTo(-300,0).up();

    int n,a[52],maxx=0,maii,b;

    cin>>n;

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

    {cin>>a[i];

    if(a[i]>maxx)

    {maxx=a[i];}

    }

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

    {p.fd(a[i]/2.0).rr(20,a[i],2).fd(a[i]/2.0).fd((maxx-a[i])*1/2).rr(20,maxx-a[i],1);

    p.bk((maxx-a[i])/2.0+a[i]).rt(90).fd(40).lt(90);}

    return 0;

}

第4题     排队

学校饭堂有n个人在排队等取餐,由于学校规定,他们全部都排成一条直线。校园小记者想要问他们中的第k个人知不知道队伍中有多少个人。已知队伍中的人只会看着队伍的前方,而且视线会被前面身高比自己高的人挡住(相等就不挡住),比如一条人数为5的队伍中,他们的身高分别是156 134 145 142 144 第五个人只能看到第三个人和第四个人,因为第三个人的身高就比自己高了,前面两个人就看不到,所以会以为队伍中只有3个人(包括自己)

小记者会把问到的情况用红色的半径为20的圆记录下来

输入格式

第一行:n,k范围【2,20】,且n>=k;n代表队伍中的总人数,k代表询问第k人。

第二行:n个数  ,表示队伍中每个人的身高,范围【100,200】

输出格式

相对应图形

输入/输出例子1

输入:

5 4

156 134 145 142 144 

输出:


样例解释

作答区域

int main(){

            int  n,a[25],k,s=1;

    cin >> n>>k;

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

      cin >> a[i];

    p.up().rt(90).bk(350);

    for(int i=k-1;i>=1;i--)

    {   

        s++;

        if(a[k]<a[i]) break;

    }

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

        p.oo(20,1).fd(40);

    p.hide();

    return 0;

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容