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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wx_byrDDXsc 中级黑马   /  2016-3-28 20:08  /  1408 人查看  /  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 = 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;
}




3 个回复

倒序浏览
兄弟 printf那错了吧,countries是指针啊
回复 使用道具 举报
wx_byrDDXsc 来自手机 中级黑马 2016-3-29 08:37:59
藤椅
y977975092 发表于 2016-3-29 06:29
兄弟 printf那错了吧,countries是指针啊

不好意思 漏下了 应是countries[i]。多谢指正~
回复 使用道具 举报
过来看看,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马