• 九度OJ 1110:小白鼠排队 (排序)


    时间限制:1 秒

    内存限制:32 兆

    特殊判题:

    提交:1734

    解决:1054

    题目描述:

    N只小白鼠(1 <= N <= 100),每只鼠头上戴着一顶有颜色的帽子。现在称出每只白鼠的重量,要求按照白鼠重量从大到小的顺序输出它们头上帽子的颜色。帽子的颜色用“red”,“blue”等字符串来表示。不同的小白鼠可以戴相同颜色的帽子。白鼠的重量用整数表示。

    输入:
    多案例输入,每个案例的输入第一行为一个整数N,表示小白鼠的数目。
    下面有N行,每行是一只白鼠的信息。第一个为不大于100的正整数,表示白鼠的重量,;第二个为字符串,表示白鼠的帽子颜色,字符串长度不超过10个字符。
    注意:白鼠的重量各不相同。

    输出:

    每个案例按照白鼠的重量从大到小的顺序输出白鼠的帽子颜色。

    样例输入:
    3
    30 red
    50 blue
    40 green
    样例输出:
    blue
    green
    red
    来源:
    2007年北京大学计算机研究生机试真题

    思路:

    用结构体存储,快速排序,sort或qsort


    代码:

    #include <stdio.h>
    #include <stdlib.h>
     
    #define N 100
    #define LEN 10
     
    struct mouse {
        int weight;
        char color[LEN+1];
    };
     
    int cmp(const void *a, const void *b)
    {
        return *(int *)b - *(int *)a;
    }
     
    int main(void)
    {
        int n, i;
        struct mouse m[N];
     
        while (scanf("%d", &n) != EOF)
        {
            for(i=0; i<n; i++)
                scanf("%d%s", &(m[i].weight), m[i].color);
            qsort(m, n, sizeof(m[0]), cmp);
            for (i=0; i<n; i++)
                printf("%s
    ", m[i].color);
        }
     
        return 0;
    }
    /**************************************************************
        Problem: 1110
        User: liangrx06
        Language: C
        Result: Accepted
        Time:0 ms
        Memory:912 kb
    ****************************************************************/
    


    编程算法爱好者。
  • 相关阅读:
    Spring配置自动加载执行多次的解决方法
    获取Excel文件内容,0307通用
    将Json转实体
    将实体转换为map
    Json数据转Map
    获取随机字符串
    将长内容分割,用双主键进行存储
    解决win10开机出现C:WIndowssystem32configsystemprofileDesktop不可用 问题
    2016.2.22
    云中行走
  • 原文地址:https://www.cnblogs.com/liangrx06/p/5083922.html
Copyright © 2020-2023  润新知