求问大神,用C语言怎么写啊

 

冒泡排序就可以了啊

struct stu
{
    int nid;
    float fscore;
};
void sort(struct stu *ps, int n)
{
    for (int i = 0; i < n-1; i++)
        for (int j = 0; j < n - i - 1; j++)
        {
            if (ps[j].fscore < ps[j + 1].fscore)
            {
                struct stu s = ps[j];
                ps[j] = ps[j + 1];
                ps[j + 1] = s;
            }
        }
}

void main()
{
    struct stu ps[100];
    int N,i;
    scanf("%d", &N);
    for (i = 0; i < N; i++)
        scanf("%d %f", &ps[i].nid, &ps[i].fscore);
    sort(ps, N);
    int nIdx = 1;
    float pScore;
    for (i = 0; i < N; i++)
    {
        if (i == 0)
        {
            printf("%d %d %f\n", nIdx,ps[i].nid,ps[i].fscore);
            pScore = ps[i].fscore;
        }
        else
        {
            if (ps[i].fscore == pScore)
            {
                printf("%d %d %f\n", nIdx, ps[i].nid, ps[i].fscore);
            }
            else
            {
                nIdx++;
                printf("%d %d %f\n", nIdx, ps[i].nid, ps[i].fscore);
                pScore = ps[i].fscore;
            }
        }
    }

}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632