用c语言编写程序 输入n个城市的名称,进行升序排序并输出。
时间: 2024-05-06 11:21:19 浏览: 157
好的,这个问题我可以回答。升序排序可以使用常见的冒泡排序、快速排序等算法实现。以下是一个用 C 语言实现冒泡排序的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void bubble_sort(char *cities[], int n)
{
int i, j;
char *temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (strcmp(cities[j], cities[j + 1]) > 0) {
// 交换两个元素
temp = cities[j];
cities[j] = cities[j + 1];
cities[j + 1] = temp;
}
}
}
}
int main()
{
int n, i;
printf("请输入城市的数量:");
scanf("%d", &n);
char **cities = malloc(n * sizeof(char *));
for (i = 0; i < n; i++) {
cities[i] = malloc(256 * sizeof(char)); // 假设每个城市的名字不超过 255 个字符
printf("请输入第%d个城市的名称:", i + 1);
scanf("%s", cities[i]);
}
bubble_sort(cities, n);
printf("排序后的城市名称为:\n");
for (i = 0; i < n; i++) {
printf("%s\n", cities[i]);
free(cities[i]); // 释放每个字符串的内存
}
free(cities); // 释放指针数组的内存
return 0;
}
```
使用时,输入城市的数量和每个城市的名称,程序会进行升序排序并输出。
阅读全文