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