53342321 2019-11-27 09:39 采纳率: 100%
浏览 625
已采纳

顺序排序的一道题,希望大神指点一下

描述
在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第k名学生的学号和成绩。
输入
第一行有两个整数,分别是学生的人数n(1≤n≤100),和求第k名学生的k(1≤k≤n)。
其后有n行数据,每行包括一个学号(整数)和一个成绩(浮点数),中间用一个空格分隔。
输出
输出第k名学生的学号和成绩,中间用空格分隔。(注:请用%g输出成绩)
样例输入
5 3
90788001 67.8
90788002 90.3
90788003 61
90788004 68.4
90788005 73.9
样例输出
90788004 68.4
我的代码

#include<stdio.h>
int main()
{
    int a,i,j,n,k,t;
    double temp,b;
    double score[256];
    int id[256];
    scanf("%d %d",&n,&k);
    for(i=1;i<=n;i++)
    {
        scanf("%d %lf",&a,&b);
        id[i]=a;
        score[i]=b;
    }
    for(i=1;i<=n-1;i++)
    {
        for(j=i+1;j<=n;j++)
        if(score[j]<score[i])
        {
          temp=score[i];
          score[i]=score[j];
          score[j]=temp;
          t=id[i];
          id[i]=id[j];
          id[j]=t;
        }
    }
    printf("%d %g",id[k],score[k]);
    return 0;
}

http://noi.openjudge.cn/ch0110/01/ 原题地址
我这道题测试了一下没错,但是oj只给了2分,希望大神帮我改到满分

  • 写回答

2条回答 默认 最新

  • qtchen_1988 2019-11-27 10:36
    关注
     if(score[j]<score[i])
    改成
    if(score[j]>score[i])
    

    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 我的b站在没有碰到屏幕的情况下偶尔会自动跳出进度条,就像在屏幕上点了一下一样,但我并没有点。而且视频进度并没有变。这可能是什么原因造成的?
  • ¥30 STK matlab python仿真
  • ¥15 关于IMageEnView 图标定位问题
  • ¥20 求解答(matlab)
  • ¥30 ffmpeg库使用过程中遇到的问题
  • ¥15 pyqt5 中python如何通过Qtwebchannel主动发消息给web前端
  • ¥15 关于HTML中title获取xml内容的问题
  • ¥15 fanuc机器人PRIO083数字信号未复原错误,如何解决?
  • ¥20 如何为现有电路板增加远程控制功能
  • ¥15 UE5打包失败,求解决