c语言利用指针数组,编写一个将n个字符串从小到大排序的函数sort(char *words[], int n)。要求在主函数中输入5个英语单词,并调用函数sort将这5个英语单词排序,然后将排序后的结果输出。 【输入描述】 分行输入5个英语单词。 【输出描述】 将排序后的英语单词输出,一行显示一个单词。 【输入示例】 HELLO COMPUTER CAR WINDOWS PASCAL 【输出示例】 CAR COMPUTER HELLO PASCAL WINDOWS
时间: 2024-03-28 22:41:56 浏览: 76
好的,这是一个利用指针数组实现字符串排序的示例代码:
```c
#include <stdio.h>
#include <string.h>
void sort(char *words[], int n) {
int i, j;
char *temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (strcmp(words[i], words[j]) > 0) {
temp = words[i];
words[i] = words[j];
words[j] = temp;
}
}
}
}
int main() {
char *words[5];
int i;
for (i = 0; i < 5; i++) {
words[i] = (char *) malloc(20 * sizeof(char));
scanf("%s", words[i]);
}
sort(words, 5);
for (i = 0; i < 5; i++) {
printf("%s\n", words[i]);
free(words[i]);
}
return 0;
}
```
在这个代码中,我们首先定义了一个 `sort` 函数,它的参数是指向指针的指针 `char *words[]` 和整数 `int n`。在函数中,我们使用了冒泡排序的思想,将字符串从小到大排序。
然后在 `main` 函数中,我们定义了一个指针数组 `char *words[5]`,并使用 `malloc` 分配了每个字符串的内存空间。然后循环输入五个英语单词,并调用 `sort` 函数将这五个单词排序,最后输出排序结果并释放每个字符串的内存空间。
希望对你有所帮助,如果还有其他问题可以继续问我。
阅读全文