用C语言输入十个国家的名字按从小到大排序
时间: 2023-10-10 08:13:22 浏览: 103
可以使用冒泡排序法来实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_COUNTRY_NAME_LENGTH 50
#define NUMBER_OF_COUNTRIES 10
int main() {
char countries[NUMBER_OF_COUNTRIES][MAX_COUNTRY_NAME_LENGTH];
int i, j;
char temp[MAX_COUNTRY_NAME_LENGTH];
// 输入国家名字
printf("请输入%d个国家名字:\n", NUMBER_OF_COUNTRIES);
for (i = 0; i < NUMBER_OF_COUNTRIES; i++) {
scanf("%s", countries[i]);
}
// 冒泡排序
for (i = 0; i < NUMBER_OF_COUNTRIES - 1; i++) {
for (j = 0; j < NUMBER_OF_COUNTRIES - 1 - i; j++) {
if (strcmp(countries[j], countries[j+1]) > 0) {
strcpy(temp, countries[j]);
strcpy(countries[j], countries[j+1]);
strcpy(countries[j+1], temp);
}
}
}
// 输出排序结果
printf("排序结果为:\n");
for (i = 0; i < NUMBER_OF_COUNTRIES; i++) {
printf("%s\n", countries[i]);
}
return 0;
}
```
上述代码中,我们首先定义了两个常量 `MAX_COUNTRY_NAME_LENGTH` 和 `NUMBER_OF_COUNTRIES`,分别表示国家名字的最大长度和输入的国家数量。然后定义了一个二维字符数组 `countries` 来存储国家名字,以及一个临时字符数组 `temp` 用于交换两个国家名字。
接着,我们使用 `scanf` 函数输入每个国家的名字,然后使用冒泡排序算法对这些名字进行从小到大的排序。排序过程中,我们使用 `strcmp` 函数来比较两个字符串的大小关系,并使用 `strcpy` 函数来交换两个字符串的值。
最后,我们输出排序结果即可。