4.编写程序:输入六个英文国家名称,并按字母顺序排列输出。C语言并且带有程序分析
时间: 2024-02-13 18:04:14 浏览: 124
以下是C语言的程序及程序分析:
```c
#include <stdio.h>
#include <string.h>
#define N 6 // 定义国家数量为6
int main() {
char country[N][20]; // 存储国家名称的二维字符数组
char temp[20]; // 临时存储变量
int i, j;
// 输入六个国家名称
for (i = 0; i < N; i++) {
printf("请输入第%d个国家名称:", i+1);
scanf("%s", country[i]);
}
// 冒泡排序,按字母顺序排列国家名称
for (i = 0; i < N - 1; i++) {
for (j = i + 1; j < N; j++) {
if (strcmp(country[i], country[j]) > 0) {
strcpy(temp, country[i]);
strcpy(country[i], country[j]);
strcpy(country[j], temp);
}
}
}
// 输出排序后的国家名称
printf("\n按字母顺序排列的国家名称为:\n");
for (i = 0; i < N; i++) {
printf("%s\n", country[i]);
}
return 0;
}
```
程序分析:
1. 定义国家数量为6,使用二维字符数组 `char country[N][20]` 存储国家名称,其中 `N` 表示国家数量,`20` 表示每个国家名称的最大长度为20个字符。
2. 使用 `for` 循环输入六个国家名称,使用 `scanf("%s", country[i])` 读取字符串输入并存储到 `country[i]` 中。
3. 使用冒泡排序算法,按字母顺序排列国家名称。冒泡排序算法是一种简单的排序算法,它通过不断地比较相邻的两个元素并交换它们的位置,从而将较小的元素逐步移动到数组的前端。具体实现方式为使用两个嵌套的循环,外层循环控制比较的轮数,内层循环控制每一轮比较的次数。在每一轮比较中,如果相邻的两个元素顺序不正确,就交换它们的位置。这里使用 `strcmp()` 函数比较两个字符串的大小关系,如果 `country[i]` 的字典序比 `country[j]` 大,则交换两个字符串的位置。
4. 最后使用 `for` 循环输出排列后的国家名称。
阅读全文