题解 | #成绩排序#

成绩排序

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

#include <stdio.h>

#define N 1000
struct SC {
    char name[N];
    int score;
};
int main() {
    int n;
    while(scanf("%d", &n)!=EOF){
    struct SC s1[N];

    int flag;
    scanf("%d", &flag);

    for (int i = 0; i<n; i++) {
        scanf("%s", s1[i].name);
        scanf("%d", &s1[i].score);
    }

    if (flag == 0) {//降序,从大到小
        // printf("1");
        for (int i = 0; i<n; i++) {
            //  printf("2");
            for (int j = 1;  j < n - i;j++) {
                // printf("3");
                // printf("%d %d %d %d \n",i,j,s1[i].score , s1[j].score);
                if (s1[j-1].score < s1[j].score) {
                    // printf(" 5 \n");
                    struct SC temp;
                    temp= s1[j-1];
                    s1[j-1] = s1[j];
                    s1[j] = temp;
                }
            }
        }
        for (int i = 0;  i < n;i++) {
            //  printf("5");
            printf("%s %d\n", s1[i].name, s1[i].score);
        }
    } else if (flag == 1) {//升序 从小到大
        for (int i = 0; i < n;i++) {
            for (int j = 1; j < n - i; j++) {
                // printf("%d %d %d %d \n",i,j,s1[i].score , s1[j].score);
                if (s1[j-1].score > s1[j].score) {
                    // printf(" 5 \n");
                    struct SC temp;
                    temp= s1[j-1];
                    s1[j-1] = s1[j];
                    s1[j] = temp;
                }
            }
        }
        for (int i = 0; i < n;i++) {
            printf("%s %d\n", s1[i].name, s1[i].score);
        }
    }
}

    return 0;
}

很怪~

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务