题解 | #图片整理#

图片整理

http://www.nowcoder.com/practice/2de4127fda5e46858aa85d254af43941

太简单了我就写了个动态分配内存版本的

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define MAX 10
struct Word
{
    char* strarr;
    int sz;
    int max;
};

void Expand(struct Word* pc)//扩容
{
    if (pc->max == pc->sz)
    {
        pc->max += MAX;
        char* ret = (char*)realloc(pc->strarr, pc->max);
        if (NULL != ret)
        {
            pc->strarr = ret;
        }
        else
        {
            perror("realloc");
        }
    }
}
int my_cmp(const void* elem1, const void* elem2)
{
    return strcmp((char*)elem1, (char*)elem2);
}
int main()
{
    struct Word One = {0};
    One.max = MAX;
    One.strarr = (char*)malloc(MAX * sizeof(char));
    if (NULL == One.strarr)
    {
        perror("malloc");
        return 1;
    }
    while (1)
    {
        scanf("%c", One.strarr + One.sz);
        if ('\n' == *(One.strarr + One.sz))
        {
            *(One.strarr + One.sz) = '\0';
            break;
        }
        One.sz++;
        Expand(&One);
    }

    int ret = (int)strlen(One.strarr);
    qsort(One.strarr, strlen(One.strarr), sizeof(char), my_cmp);
    printf("%s", One.strarr);
    return 0;
}
全部评论

相关推荐

仁者伍敌:难怪小公司那么挑剔,让你们这些大佬把位置拿了
点赞 评论 收藏
分享
06-08 22:25
门头沟学院 Java
从零开始的转码生活:这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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