将5个单词从小到大排序后输出。用指针数组存放单词。C语言
时间: 2024-02-18 20:05:36 浏览: 38
好的,以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_WORDS 5
#define MAX_LENGTH 20
void sort_words(char *words[], int n);
int main() {
char words[MAX_WORDS][MAX_LENGTH];
char *word_ptrs[MAX_WORDS];
printf("Enter %d words:\n", MAX_WORDS);
for (int i = 0; i < MAX_WORDS; i++) {
scanf("%s", words[i]);
word_ptrs[i] = words[i];
}
sort_words(word_ptrs, MAX_WORDS);
printf("Sorted words:\n");
for (int i = 0; i < MAX_WORDS; i++) {
printf("%s\n", word_ptrs[i]);
}
return 0;
}
void sort_words(char *words[], int n) {
char *temp;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (strcmp(words[j], words[j + 1]) > 0) {
temp = words[j];
words[j] = words[j + 1];
words[j + 1] = temp;
}
}
}
}
```
代码中,首先定义了一个二维字符数组 `words`,用于存储用户输入的单词。然后定义了一个指针数组 `word_ptrs`,该数组的每个元素都指向 `words` 中的一个单词。接着,使用循环依次读入用户输入的单词,并将每个单词的地址存储到 `word_ptrs` 中。
排序函数 `sort_words` 使用冒泡排序算法,依次比较相邻的单词,并根据它们的字典序进行交换。最后,在主函数中调用 `sort_words` 对单词进行排序,并输出排序后的结果。
需要注意的是,由于 `words` 数组是一个二维数组,所以在将单词的地址存储到 `word_ptrs` 数组中时,需要使用二级指针。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)