利用指针将输入的十个学生的姓名进行排序
时间: 2024-05-14 11:18:47 浏览: 15
好的,以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_LEN 50 // 学生姓名的最大长度
void sort_names(char **names, int num_names);
int main(void) {
char *names[10]; // 学生姓名的指针数组
int i;
// 输入学生姓名
printf("请输入十个学生的姓名:\n");
for (i = 0; i < 10; i++) {
names[i] = (char*) malloc(MAX_NAME_LEN * sizeof(char)); // 为每个学生姓名分配内存
scanf("%s", names[i]);
}
// 对学生姓名进行排序
sort_names(names, 10);
// 输出排序后的学生姓名
printf("\n排序后的学生姓名为:\n");
for (i = 0; i < 10; i++) {
printf("%s\n", names[i]);
free(names[i]); // 释放每个学生姓名的内存
}
return 0;
}
// 使用选择排序算法对姓名进行排序
void sort_names(char **names, int num_names) {
int i, j, min_idx;
char *temp;
for (i = 0; i < num_names - 1; i++) {
min_idx = i;
for (j = i + 1; j < num_names; j++) {
if (strcmp(names[j], names[min_idx]) < 0) {
min_idx = j;
}
}
if (min_idx != i) {
temp = names[i];
names[i] = names[min_idx];
names[min_idx] = temp;
}
}
}
```
这个程序中,我们首先定义了一个指针数组 `names`,用于存储十个学生的姓名。然后在 `main` 函数中,我们使用 `malloc` 函数为每个学生姓名分配了一定大小的内存空间,并通过 `scanf` 函数读取用户输入的学生姓名。接着,我们调用 `sort_names` 函数对这些学生姓名进行排序,并使用 `printf` 函数输出排序后的结果。最后,我们在程序结束前使用 `free` 函数释放了为每个学生姓名分配的内存空间。在 `sort_names` 函数中,我们使用了简单的选择排序算法对学生姓名进行排序。
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)