黑马程序员技术交流社区

标题: 字符串排序-选择 [打印本页]

作者: wx_byrDDXsc    时间: 2016-3-28 20:09
标题: 字符串排序-选择
/*

将这些国家名字按照首字母顺序排列
并按照长度排序,从长到短.
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 = i + 1; j < len; j++)
        {
            if (!(strcmp(countries, countries[j])))
            {
                char* temp = countries;
                countries = countries[j];
                countries[j] = 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 = i+1; j < len; j++)
        {
            unsigned long len1 = strlen(countries);
            unsigned long len2 = strlen(countries[j]);
            if (len1 < len2)
            {
                char* temp = countries;
                countries = countries[j];
                countries[j] = temp;
            }

        }
    }
    for (int i = 0; i < len; i++)
    {
        printf("%s\n",countries);
    }
    return 0;
}







作者: wx_byrDDXsc    时间: 2016-3-29 08:40
printf里面应是countries[i] ,打错了不好意思
作者: Zhangqi27    时间: 2016-3-29 21:51
今天刚学……  666
作者: tdwydan1    时间: 2016-3-29 22:18
第一个循环里面,if判断那块,也要写成countires【i】吧,要不然每次都是第一个元素和后面的元素进行比较。




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