• 九度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
    ****************************************************************/
    


    编程算法爱好者。
  • 相关阅读:
    【luogu P1073 最优贸易】 题解
    【luogu P2919 [USACO08NOV]守护农场Guarding the Farm】 题解
    【luogu P3946 ことりのおやつ】 题解
    【luogu P3393 逃离僵尸岛】 题解
    ubuntu问题: 同时只能有一个软件管理工具在运行
    Windows server 2008 r2 开启Aero
    windows8.1安装之后的感想
    20条Linux命令面试问答
    9个常用iptables配置实例
    Linux SSH安全技巧
  • 原文地址:https://www.cnblogs.com/liangrx06/p/5083922.html
Copyright © 2020-2023  润新知