黑马程序员技术交流社区

标题: 字符串排序-冒泡 [打印本页]

作者: wx_byrDDXsc    时间: 2016-3-28 20:08
标题: 字符串排序-冒泡
/*
将这些国家名字按照首字母顺序排列
并按照长度排序,从长到短.
Afghanistan
Bangladesh
Bhutan
Burma
Cambodia
China
India
Indonesia
Japan
Laos
Malaysia
Maldives
Mongolia
Nepal
North Korea
Pakistan
Philippines
Singapore
South Korea
Sri Lanka
Turkey
Vietnam
Palestine
Sikkim


*/

#include <stdio.h>
#include <string.h>
int main()
{
    char* countries[] =
    {
        "Afghanistan",
        "Bangladesh",
        "Bhutan",
        "Burma",
        "Cambodia",
        "China",
        "India",
        "Indonesia",
        "Japan",
        "Laos",
        "Malaysia",
        "Maldives",
        "Mongolia",
        "Nepal",
        "North Korea",
        "Pakistan",
        "Philippines",
        "Singapore",
        "South Korea",
        "Sri Lanka",
        "Turkey",
        "Vietnam",
        "Palestine",
        "Sikkim"
    };
    //按字母
    int len = sizeof(countries)/8;
    for (int i = 0; i < len - 1; i++)
    {
        for (int j = 0; j < len - 1 - i; j++)
        {
            if (!(strcmp(countries[j], countries[j+1])))
            {
                char* temp = countries[j];
                countries[j] = countries[j+1];
                countries[j+1] = temp;
            }
        }
    }
    for (int i = 0; i < len; i++)
    {
        printf("%s\n",countries);
    }

    printf("---------------\n");
    //按长度
    for (int i = 0; i < len - 1; i++)
    {
        for (int j = 0; j < len - 1 - i; j++)
        {
            unsigned long len1 = strlen(countries[j]);
            unsigned long len2 = strlen(countries[j+1]);
            if (len1 < len2)
            {
                char* temp = countries[j];
                countries[j] = countries[j+1];
                countries[j+1] = temp;
            }
        }
    }
    for (int i = 0; i < len; i++)
    {
        printf("%s\n",countries);
    }
    return 0;
}





作者: y977975092    时间: 2016-3-29 06:29
兄弟 printf那错了吧,countries是指针啊
作者: wx_byrDDXsc    时间: 2016-3-29 08:37
y977975092 发表于 2016-3-29 06:29
兄弟 printf那错了吧,countries是指针啊

不好意思 漏下了 应是countries[i]。多谢指正~
作者: lzlizhi    时间: 2016-3-29 13:36
过来看看,学习了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2