2021年常州市“信息与未来“程序设计小能手比赛试题--比赛

注:本题文件名为match

题目描述

        小X参加了一场作文比赛的初赛。算上小X,他的学校一共有N个人参加了这场比赛。一个礼拜后,小X兴奋的打开比赛官网,发现一等奖,二等奖,三等奖的分数线都已经公布了,但没有提到获得什么奖项才能进入复赛。小X想问问你,如果要获得A等奖才能进入复赛的话,他的学校能有多少人进入复赛呢?假设A等奖的分数线是X,一个人的分数是Y,如果Y大于等于X,这个人就获得了A等奖。

输入

        输入数据共四行,第一行一个正整数N,表示小X的学校共有N人参加了比赛。第二行N个正整数,表示小X的学校所有人的得分。第三行三个正整数L1,L2,L3,分别表示三等奖,二等奖,一等奖的分数线。第四行一个正整数A,表示要获得A等奖才能进入复赛。

输出

        输出一行包含一个正整数,表示有多少人进入复赛。

样例组

输入
4
99 101 200 300
100 200 300
2

输出 2

数据范围

对于20%的数据,N=1(学校只有小X参加了比赛);

对于60%的数据:N<=10;

对于全部数据:所有人的得分<=1000,L3<=L2<=L1<=1000,1<=A<=3,N<=10000。

解题思路

这道题目先输入数据,然后再拿L[A]去与每位选手的成绩进行比较,得到这个学校进复赛的人数。最后输出这个数值就完事了。

题目解析

        这道题目可以把L1,L2,L3储存在数组L里,这样可以在统计的时候使用循环,减少代码行数,也使写程序的时候更加便利。

        这道题目的统计(计数)部分是这道题的主体部分,用循环与L[A]比较就可以了。具体实现代码如下:

int count(int a[],int l[],int n,int x)
{
    int ans=0; 
    for(int i=1;i<=n;i++)
    	if(a[i]>=l[x])  ++ans;
    return ans;
}

这道题的具体代码如下:

#include<bits/stdc++.h>
using namespace std;
//这里用b数组代替l,x代替a
int n,x,ans=0,a[10001],b[4]; 
int main()
{
    cin>>n;
    for(int i=1;i<=n;++i)  cin>>a[i];
    cin>>b[3]>>b[2]>>b[1]>>x;
    for(int i=1;i<=n;i++)
    	if(a[i]>=b[x])  ++ans;
    cout<<ans;
	return 0;
} 

这道题目就这么多。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值