题解 | #成绩排序#

成绩排序

http://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b

            //由于这个条件:相同成绩都按先录入排列在前的规则处理。
            //导致排序方法不同也会影响结果正确性!!!
            //TMD 又浪费时间在拍错上了
            //审题一定要仔细啊!!!!!!!!!!
//*xtj
#include<stdio.h>
#include<string.h>
#define CD 50

struct JL
{
    char name[30];
    int grade;
};

void swap(struct JL a, struct JL b);
int main()
{
    int n = 0;
    int dir = 0;
    while (scanf("%d %d\n", &n,&dir) != EOF)
    {
//        scanf("%d", &dir);
        struct JL input[n];
        for (int i = 0; i < n; i++)
        {
            scanf("%s %d", &(input[i].name), &(input[i].grade));
        }
        if (dir)//从小到大
        {
            //由于这个条件:相同成绩都按先录入排列在前的规则处理。
            //导致排序方法不同也会影响结果正确性!!!
            //TMD 又浪费时间在拍错上了
            //审题一定要仔细啊!!!!!!!!!!
            for (int i = 0; i < n - 1; i++)
            {
                for (int j = 0; j < n-1-i; j++)
                {
                    if (input[j].grade > input[j+1].grade)
                    {
                        // swap(input[i], input[j]);
                        struct JL temp;
                        temp = input[j+1];
                        input[j+1] = input[j];
                        input[j] = temp;
                    }
                }
            }
        }
        else//从大到小
        {
            for (int i = 0; i < n - 1; i++)
            {
                for (int j = 0; j < n-1-i; j++)
                {
                    if (input[j].grade < input[j+1].grade)
                    {
                        // swap(input[i], input[j]);
                        struct JL temp;
                        temp = input[j+1];
                        input[j+1] = input[j];
                        input[j] = temp;
                    }
                }
            }
        }

        for (int i = 0; i < n; i++)
        {
            printf("%s %d\n", input[i].name, input[i].grade);
        }
    }
    return 0;
}
void swap(struct JL a, struct JL b)
{
    struct JL temp;
    temp = a;
    a = b;
    b = temp;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
09-30 19:49
起名星人:蛮离谱的,直接要求转投销售
投递汇川技术等公司10个岗位
点赞 评论 收藏
分享
头像
10-09 19:35
门头沟学院 Java
洛必不可达:java的竞争激烈程度是其他任何岗位的10到20倍
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务