睡觉觉觉得 2023-09-13 22:01 采纳率: 85.2%
浏览 41
已结题

如何在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第 x 名学生的学号和成绩?(关键词-浮点数)

描述

在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第 x 名学生的学号和成绩。

输入
第一行有两个整数,分别是学生的人数n (1<=n<=100),和求第 x 名学生的 x (1<=x<=n)。

其后有 n 行数据,每行包括一个学号(整数)和—个成绩(浮点数),中间用一个空格分隔。

输出
输出第 x 名学生的学号和成绩,中间用空格分隔。

输入样例 1

5 3
90788001 67.8
90788002 90.3
90788003 61
90788004 68.4
90788005 73.9
输出样例 1

90788004 68.4
语言:
C++

  • 写回答

4条回答 默认 最新

  • CSDN专家-sinJack 2023-09-13 22:13
    关注

    将学号和成绩存入结构体数组中,按成绩从大到小排序,输出第x个学生的学号和成绩即为数组x-1位置下的元素。
    参考:
    http://t.csdn.cn/BT702

    #include <iostream>
    using namespace std;
    typedef struct student
    {
        char no[20];
        float score;
    }stu;
     
    void paixu(stu s[],int len)
    {
        int i,j;
        stu temp; 
        for(i = 0;i < len-1;i++)
        {
            for(j = 0;j < len-i-1;j++)
            {
                if(s[j].score < s[j+1].score)
                {
                    temp = s[j];   
                    s[j] = s[j+1];
                    s[j+1] = temp;
                }
            }
        }
    }
     
    int main()
    {
        stu s[100];
        int num,x;
        cin >> num >> x;
        for(int i = 0;i < num;i++){
            cin >> s[i].no >> s[i].score;
        }
        paixu(s,num);
        cout << s[x-1].no << " " << s[x-1].score;
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 9月22日
  • 已采纳回答 9月14日
  • 创建了问题 9月13日

悬赏问题

  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
  • ¥15 uniapp的h5项目写一个抽奖动画
  • ¥15 TeleScan不能修改bar
  • ¥100 请问我基于逐飞库写的这个有关于mp u6050传感器的函数,为什么输出的值是固定的?
  • ¥15 hadoop中启动hive报错如下怎么解决
  • ¥15 如何优化QWebEngineView 加载url的速度
  • ¥15 关于#hadoop#的问题,请各位专家解答!
  • ¥15 如何批量抓取网站信息
  • ¥15 Spring Boot离线人脸识别