A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wx_byrDDXsc 中级黑马   /  2016-3-28 20:09  /  1057 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*

将这些国家名字按照首字母顺序排列
并按照长度排序,从长到短.
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;
}






3 个回复

正序浏览
第一个循环里面,if判断那块,也要写成countires【i】吧,要不然每次都是第一个元素和后面的元素进行比较。
回复 使用道具 举报
今天刚学……  666
回复 使用道具 举报
wx_byrDDXsc 来自手机 中级黑马 2016-3-29 08:40:01
沙发
printf里面应是countries[i] ,打错了不好意思
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马