输入10个国家名称,用指针数组实现排序输出
时间: 2024-10-20 22:19:42 浏览: 41
连接链表并保持由小到大的次序-c语言指针数组与指针的指针
在C语言中,我们可以使用指针数组来存储国家名称,并通过比较指针指向的数据来对它们进行排序。这里我们假设字符串作为字符数组存储,然后可以使用冒泡排序、选择排序或快速排序等算法。下面是一个简单的冒泡排序示例:
```c
#include <stdio.h>
#include <string.h>
// 假设我们有结构体Country,包含国家名和指针
typedef struct {
char* name;
} Country;
void swap(Country** a, Country** b) {
Country temp = *a;
*a = *b;
*b = temp;
}
void bubbleSort(Country countries[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (strcmp(countries[j].name, countries[j + 1].name) > 0) {
swap(&countries[j], &countries[j + 1]);
}
}
}
}
int main() {
Country countries[] = {"中国", "美国", "俄罗斯", "印度", "巴西", "澳大利亚", "加拿大", "日本", "德国", "南非"};
int num_countries = sizeof(countries) / sizeof(countries[0]);
printf("Before sorting:\n");
for (int i = 0; i < num_countries; i++) {
printf("%s ", countries[i].name);
}
bubbleSort(countries, num_countries);
printf("\nAfter sorting:\n");
for (int i = 0; i < num_countries; i++) {
printf("%s ", countries[i].name);
}
return 0;
}
```
在这个例子中,`countries`数组存储了国家名称,`bubbleSort`函数实现了冒泡排序。运行程序后,会看到按字典序排序后的国家列表。
阅读全文