C语言编写代码,实现对一组城市名的升序排序。提示:利用字符指针数组。
时间: 2023-08-18 21:05:03 浏览: 151
C语言指针一
可以使用冒泡排序或者快速排序等算法来实现对一组城市名的升序排序。这里提供一个利用字符指针数组的冒泡排序的例子:
```c
#include <stdio.h>
#include <string.h>
#define MAX_CITY_NUM 10
#define MAX_CITY_NAME_LEN 20
void bubble_sort(char *city_list[], int city_num)
{
int i, j;
char *temp;
for(i = 0; i < city_num - 1; i++)
{
for(j = i + 1; j < city_num; j++)
{
if(strcmp(city_list[i], city_list[j]) > 0)
{
// 交换两个城市名
temp = city_list[i];
city_list[i] = city_list[j];
city_list[j] = temp;
}
}
}
}
int main()
{
char city_names[MAX_CITY_NUM][MAX_CITY_NAME_LEN] = {
"Beijing", "Shanghai", "Guangzhou", "Shenzhen", "Hangzhou",
"Chengdu", "Chongqing", "Wuhan", "Nanjing", "Xiamen"
};
char *city_list[MAX_CITY_NUM];
int i;
// 初始化指针数组
for(i = 0; i < MAX_CITY_NUM; i++)
{
city_list[i] = city_names[i];
}
// 对城市名进行升序排序
bubble_sort(city_list, MAX_CITY_NUM);
// 打印排序后的城市名
printf("Sorted city names:\n");
for(i = 0; i < MAX_CITY_NUM; i++)
{
printf("%s\n", city_list[i]);
}
return 0;
}
```
运行结果如下:
```
Sorted city names:
Beijing
Chengdu
Chongqing
Guangzhou
Hangzhou
Nanjing
Shanghai
Shenzhen
Wuhan
Xiamen
```
这里利用了一个字符指针数组 `city_list` 来存储城市名,每个元素指向对应的 `city_names` 数组中的一行字符串。在排序时,直接比较指针所指向的字符串即可。
阅读全文