c语言编程 利用指针将10个学生的姓名排序
时间: 2023-06-13 16:07:39 浏览: 113
下面是一个利用指针将10个学生的姓名按字典序排序的示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NAME_LEN 20 // 姓名最大长度
void sort_names(char *names[], int n);
int main()
{
char *names[] = {"Tom", "Jerry", "Alice", "Bob", "David", "Mary", "John", "Lucy", "Peter", "Kate"};
int n = sizeof(names) / sizeof(names[0]);
// 输出原始姓名列表
printf("Original names:\n");
for (int i = 0; i < n; i++) {
printf("%s\n", names[i]);
}
// 对姓名列表进行排序
sort_names(names, n);
// 输出排序后的姓名列表
printf("Sorted names:\n");
for (int i = 0; i < n; i++) {
printf("%s\n", names[i]);
}
return 0;
}
// 利用指针将姓名列表按字典序排序
void sort_names(char *names[], int n)
{
char *temp;
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (strcmp(names[i], names[j]) > 0) {
temp = names[i];
names[i] = names[j];
names[j] = temp;
}
}
}
}
```
这个程序中,我们定义了一个字符串指针数组 `names`,用于存储学生的姓名。然后定义了一个函数 `sort_names`,该函数接受一个字符串指针数组和数组的长度作为参数,利用指针将姓名按字典序排序。排序方法采用了简单的冒泡排序。最后在 `main` 函数中调用 `sort_names` 函数对姓名列表进行排序,并输出原始和排序后的姓名列表。
阅读全文