问题标题: 酷町堂:1480

0
0
已解决
葛子睿
葛子睿
新手守护
新手守护

在期末考试结束后,已知了学生的学号和考试成绩,请聪明的你输出考试第m名学生的学号和成绩。(如果有若干个相同的成绩,则学号小的优先输出)。

输入描述 Input Description

输入n+1行;
第一行输入整数n,m;n表示学生人数,m表示第m名的学生。其中0<m<=n<10000。
剩下的n行,每行包括一个学号(整数10000~99999)和一个成绩,中间用一个空格分隔。

输出描述 Output Description

输出为一行,输出第m名学生的学号和成绩(保留一位小数),中间用空格分隔。

 

 


0
已采纳
潘艺博
潘艺博
初级天翼
初级天翼

int main外:

struct r{//struct是结构体
    定义整形(int) id;//学号
    定义实型(double) f;//分数
}a[100003];//定义一个数组
bool型函数 cmp(r a,r b){//排序函数
    如果(a.f不等于b.f) return a.f大于b.f;//如果两个分数不相等,从大到小排序
    return a.id小于b.id;//如果分数一样,按学号从小到大排序
}

int main里:

输入n和k
   循环(int i=1;i<=n;i++){
           输入a[i].id和a[i].f
    }
    sort(a+1,a+1+n,cmp);//排序
    输出a[k].id和a[k].f;//输出第k个分数

望采纳~

我要回答