题解 | 成绩排序

成绩排序

https://www.nowcoder.com/practice/0383714a1bb749499050d2e0610418b1

为什么自测是对的,但是提交显示一个用例也没通过,排序是稳定的

#include <stdio.h>

#include<stdlib.h>

#include<string.h>

typedef struct student {

    char name[20];

    int chenji;

} stu;

int main() {

    int n;

    int x;

    while (scanf("%d", &n) != EOF) {

        stu stu[n], temp;

        scanf("%d", &x);

        for (int i = 0; i < n; i++) {

            scanf("%s %d", stu[i].name, &stu[i].chenji);

        }

        if (x == 0) {

            //降序

            for (int j = 0; j < n - 1; j++) {

                for (int k = j; k < n; k++) {

                    if (stu[j].chenji < stu[k].chenji) {

                        temp = stu[j];

                        stu[j] = stu[k];

                        stu[k] = temp;

                    }

                }

            }

            for (int i = 0; i < n; i++) {

                printf("%s %d\n", stu[i].name, stu[i].chenji);

            }

        }

        if (x == 1) {

            //升序

            for (int j = 0; j < n - 1; j++) {

                for (int k = j; k < n; k++) {

                    if (stu[j].chenji > stu[k].chenji) {

                        temp = stu[j];

                        stu[j] = stu[k];

                        stu[k] = temp;

                    }

                }

            }

            for (int i = 0; i < n; i++) {

                printf("%s %d\n", stu[i].name, stu[i].chenji);

            }

        }

    }

    return 0;

}

全部评论

相关推荐

点赞 评论 收藏
分享
11-23 15:14
中原工学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务