题目描述
在某个班的一次考试中,n(n<10)个学生的考试成绩都不相同,现知道了每个学生的学号和成绩,求考第k名学生的学号和成绩。如果k超出n的范围,则输出“data error”。
输入
3(班级共n名学生)
200901 86
200902 89
200903 87
2(第k名学生)
输出
200902 89
样例
3 200901 86 200902 89 200903 87 5
data error
这道题看上去很难,但是只要仔细想就会发现其实是一道水题--
#include <bits/stdc++.h>
using namespace std;
struct student{
int xh,cj;
}; //定义结构体
int main()
{
int n,k;
cin>>n;
student stu[n];
//输入
for(int i=1;i<=n;i++)
{
cin>>stu[i].xh>>stu[i].cj;
}
cin>>k;
//输出
if(k>n) //情况一
{
cout<<"data error";
}
else //情况二
{
cout<<stu[k].xh<<" "<<stu[k].cj<<endl;//第k名其实就是取stu变量的第k个
}
return 0;
}