用C语言指针函数设计一个数组,里面的每个元素都是一个名字(不要用中文名);设计一个函数对所有的名字排序;
时间: 2024-03-20 17:43:30 浏览: 45
C语言程序设计-编写函数fun对主程序中用户输入的具有10个数据的数组a按由大到小排序,并在主程序中输出排序结果;
5星 · 资源好评率100%
好的,以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NAMES 100 // 最大名字数量
#define MAX_NAME_LEN 20 // 最大名字长度
void sortNames(char **names, int numNames); // 排序函数声明
int main() {
char *names[MAX_NAMES] = {"Bob", "Alice", "Charlie", "David", "Eve"}; // 初始化名字数组
int numNames = 5; // 名字数量
sortNames(names, numNames); // 对名字进行排序
// 打印排序后的名字
printf("Sorted names:\n");
for (int i = 0; i < numNames; i++) {
printf("%s\n", names[i]);
}
return 0;
}
void sortNames(char **names, int numNames) {
// 冒泡排序
for (int i = 0; i < numNames - 1; i++) {
for (int j = 0; j < numNames - 1 - i; j++) {
if (strcmp(names[j], names[j+1]) > 0) {
// 交换名字
char *temp = names[j];
names[j] = names[j+1];
names[j+1] = temp;
}
}
}
}
```
在这个示例代码中,我们使用指针数组来存储名字,这样每个元素都可以是一个字符串。在主函数中,我们初始化了一个名字数组并将其传递给 `sortNames` 函数进行排序。`sortNames` 函数使用冒泡排序法对名字进行排序,然后将排好序的名字数组返回给主函数。最后,我们在主函数中打印排好序的名字。
阅读全文