黑马程序员技术交流社区
标题: 字符串排序-冒泡 [打印本页]
作者: 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 |