编写程序,从键盘输入5个城市的名字(Wuhan, Beijing,Shanghai,Tianjin, Guangzhou),运用字符指针数组对一组城市名进行升序排列,并把排序结果输出在屏幕上。
时间: 2024-03-01 20:51:44 浏览: 49
实现根据字母排序的城市列表
5星 · 资源好评率100%
好的,下面是代码实现:
```c
#include <stdio.h>
#include <string.h>
#define NUM_CITIES 5
#define MAX_NAME_LENGTH 20
void sort_cities(char *cities[], int num_cities);
int main() {
char *cities[NUM_CITIES];
char name[MAX_NAME_LENGTH];
int i;
// 从键盘输入城市名
for (i = 0; i < NUM_CITIES; i++) {
printf("请输入第%d个城市的名字:", i+1);
scanf("%s", name);
cities[i] = (char *)malloc(strlen(name) + 1);
strcpy(cities[i], name);
}
// 排序并输出
sort_cities(cities, NUM_CITIES);
printf("城市名按字母顺序排序:\n");
for (i = 0; i < NUM_CITIES; i++) {
printf("%s\n", cities[i]);
free(cities[i]);
}
return 0;
}
// 对城市名进行升序排列
void sort_cities(char *cities[], int num_cities) {
int i, j;
char *temp;
for (i = 0; i < num_cities-1; i++) {
for (j = 0; j < num_cities-i-1; j++) {
if (strcmp(cities[j], cities[j+1]) > 0) {
temp = cities[j];
cities[j] = cities[j+1];
cities[j+1] = temp;
}
}
}
}
```
运行结果如下:
```
请输入第1个城市的名字:Wuhan
请输入第2个城市的名字:Beijing
请输入第3个城市的名字:Shanghai
请输入第4个城市的名字:Tianjin
请输入第5个城市的名字:Guangzhou
城市名按字母顺序排序:
Beijing
Guangzhou
Shanghai
Tianjin
Wuhan
```
阅读全文