写一个C语言程序,要求任意输入十个国家名称,并字典顺序排序
时间: 2024-03-13 10:43:44 浏览: 92
c语言实现字典顺序排序
5星 · 资源好评率100%
以下是一个简单的C语言程序,可以实现任意输入十个国家名称,并按字典顺序进行排序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NAME_LENGTH 50
#define NUM_OF_COUNTRIES 10
int main() {
char countries[NUM_OF_COUNTRIES][MAX_NAME_LENGTH];
char temp[MAX_NAME_LENGTH];
int i, j;
// 输入国家名称
printf("请输入%d个国家名称:\n", NUM_OF_COUNTRIES);
for (i = 0; i < NUM_OF_COUNTRIES; i++) {
printf("%d. ", i + 1);
fgets(countries[i], MAX_NAME_LENGTH, stdin);
// 如果输入的字符串含有换行符,则去掉换行符
if (countries[i][strlen(countries[i]) - 1] == '\n') {
countries[i][strlen(countries[i]) - 1] = '\0';
}
}
// 字典顺序排序
for (i = 0; i < NUM_OF_COUNTRIES - 1; i++) {
for (j = i + 1; j < NUM_OF_COUNTRIES; j++) {
if (strcmp(countries[i], countries[j]) > 0) {
strcpy(temp, countries[i]);
strcpy(countries[i], countries[j]);
strcpy(countries[j], temp);
}
}
}
// 输出排序后的国家名称
printf("\n排序后的国家名称为:\n");
for (i = 0; i < NUM_OF_COUNTRIES; i++) {
printf("%d. %s\n", i + 1, countries[i]);
}
return 0;
}
```
这个程序定义了`MAX_NAME_LENGTH`和`NUM_OF_COUNTRIES`两个常量,分别表示国家名称的最大长度和输入的国家数量。然后使用二维字符数组`countries`来存储输入的国家名称,使用一个临时字符串`temp`来进行交换操作。
程序使用`fgets()`函数来读取输入的国家名称,然后使用`strlen()`函数来检查输入的字符串长度,如果输入的字符串含有换行符,则使用`strcpy()`函数将该字符串复制到`temp`中进行交换。
最后,程序使用双重循环对输入的国家名称进行字典顺序排序,然后输出排序后的国家名称。
阅读全文