C语言 为什么我的程序在openjudge上一直显示答案错误 但我输出的答案和他给出的例题答案一样的

我的代码:

#include <stdio.h>
int main()
{
    int m,n;
    scanf("%d",&m);
    scanf("%d",&n);
    struct information{
        int num;
        float score;
    };  
    struct information a[200];
    for(int i=0;i<m;i++)
    {
        scanf("%d",&a[i].num);
        scanf("%f",&a[i].score);

    }
    printf("%d %g",a[n].num,a[n].score);





    return 0;
}


题目:图片说明

是排序后考k名的成绩,不是按照输入的顺序第k个的成绩
你的排序代码都没有
一样只能说碰巧了而已。

难道说你认为只要和例题对上了就可以了?那所有的问题都直接输出例题答案就是了,还写什么程序。

下面是冒泡排序参考回答

#include <stdio.h>
#include <string.h>

char num[100001][100];                      // 学号 
double s[100001];                       // 成绩 

int main() {
    int n;                              // n:学生的人数(1<=n<=100) 
    int k;                              // k: 第k名学生的k(1<=k<=n) 
    scanf("%d%d", &n, &k);

    for (int i=1; i<=n; i++) {          // 输入n个学生的学号和成绩 
        scanf("%s", &num[i][0]);
        scanf("%lf", &s[i]);
    }

    for (int i=1; i<=n; i++) {          // 从大到小,选择排序 
        for (int j=i+1; j<=n; j++) {
            if (s[i] < s[j]) {          // 判断前面的数是否比后面的小 
                double d = s[i];
                s[i] = s[j];
                s[j] = d;
                char tmp[100];
                strcpy(tmp, num[i]);
                strcpy(num[i], num[j]);
                strcpy(num[j], tmp);    // 当条件成立,学号与成绩一起进行交换 
            } 
        }
    }

    printf("%s ", num[k]);
    printf("%g\n", s[k]);   
    return 0;
}