输入10个城市的名字,按照字典序列进行排序
时间: 2023-09-16 16:08:56 浏览: 179
输入10个数,然后按顺序排列
可以使用 C 语言的字符串函数 strcmp() 和 qsort() 来实现对城市名字的字典序排序。
示例代码:
```c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_CITY_NUM 10
#define MAX_CITY_NAME_LEN 20
int cmp(const void *a, const void *b) {
return strcmp(*(char **)a, *(char **)b);
}
int main() {
char cities[MAX_CITY_NUM][MAX_CITY_NAME_LEN];
char *p[MAX_CITY_NUM];
// 输入城市名字
printf("Please input 10 city names:\n");
for (int i = 0; i < MAX_CITY_NUM; i++) {
scanf("%s", cities[i]);
p[i] = cities[i];
}
// 对城市名字按字典序排序
qsort(p, MAX_CITY_NUM, sizeof(char *), cmp);
// 输出排序后的城市名字
printf("Sorted city names:\n");
for (int i = 0; i < MAX_CITY_NUM; i++) {
printf("%s\n", p[i]);
}
return 0;
}
```
在上述代码中,我们先定义了一个二维字符数组 cities,用于存储输入的城市名字。然后定义了一个指针数组 p,用于存储 cities 中每个字符串的地址。接着使用 scanf() 函数输入城市名字,并将每个字符串的地址存储到指针数组 p 中。最后使用 qsort() 函数对指针数组 p 中的字符串进行排序,排序的比较函数为 cmp(),它调用了 strcmp() 函数。最终输出排序后的城市名字。
需要注意的是,我们使用指针数组 p 的原因是 qsort() 函数要求对一个指针数组进行排序,而不能对一个二维字符数组进行排序。
阅读全文