这是个复杂问题,求大佬解惑

在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第K名学生的学号和成绩。学生人数为5人。
输入格式:
输入考生的学号和成绩,学号整型,成绩小数类型
输入第K名
输出格式:
输出第K名的学生的学号和成绩,成绩保留两位小数。
输入样例:
在这里给出一组输入。例如:

1
90
2
80
3
70
4
60
5
50
3

输出样例:
在这里给出相应的输出。例如:

3
70.00

我的代码如下:测试点只对一半

#include<stdio.h>
 
int main()
{
    int  i, t;
    double b[6],a[6];
    for(i=0; i<5; i++)
    {
        scanf("%lg", &a[i]);
      
        scanf("%lf", &b[i]);
        
    }
    scanf("%d", &t);
    for(i=0; i<5; i++)
        if(a[i] == t)
            printf("%lg\n%.2lf", a[i], b[i]);
    return 0;
}
阅读 1.8k
2 个回答
    for(i=0; i<5; i++)
        if(a[i] == t)  // a[i] 是学号,不是名次;t 是名次。你需要自己把名次算出来
            printf("%lg\n%.2lf", a[i], b[i]);

这不是什么复杂的问题,不就是个作业么?!

  • 整数不是应该用 %d 么?
  • 只需要存储 5 个数据,数据长度不应该是 5 么?—— a[5], b[5]
  • 学号用整数不是应该 int a[5] 么?
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进