分数排名查询
| ||||||
| ||||||
题目描述
张老师在同学们考试结束后,收到很多邮件。 有的同学问学号为“12号”的多少分? 有的同学问学号为“18号”的排名第几? 有的同学问80分全班排第几? 还有的同学问90分的全班有几个人? 张老师手上有所有同学的分数,请你写一个程序帮他去回答这些问题。
输入格式
输入由两部分组成,第一部分为同学的分数。第一行n为同学的数量(n<=100),下面n行每行2个数为同学的学号和成绩。第二部分第一行m为查询的数量(m<=100),下面m行每行2个数x y。x为1时查询学号为y的成绩,x为2时查询学号为y的排名(并列排名以排名小的计),x为3时查询成绩为y的排名,x为4时查询成绩为y的人数。
输出格式
每个查询输出一行,输出查询结果。
样例输入
4 8 80 2 70 3 80 4 90 4 1 3 2 3 3 80 4 80
样例输出
80 2 2 2
提示
请用结构体记录学生的学号、成绩和排名。 |
#include
#include
using namespace std;
class student
{
public:
int number;
int score;
int rank;
};
student stu[100];
bool cmp(student a,student b);
int main()
{
int n;
cin>>n;
int i;
for(i=0;i
>stu[i].number>>stu[i].score;
sort(stu,stu+n,cmp);
stu[0].rank=1;
int num=1;
for(int i=1,j=1;i
b.score; }