概述
注:本题文件名为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;
}
这道题目就这么多。
最后
以上就是活泼小蝴蝶为你收集整理的2021年常州市“信息与未来“程序设计小能手比赛试题--比赛的全部内容,希望文章能够帮你解决2021年常州市“信息与未来“程序设计小能手比赛试题--比赛所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复