利用指针将10个学生的姓名排序
时间: 2023-11-02 08:18:57 浏览: 50
下面是一个简单的利用指针将10个学生的姓名排序的示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NAME_LEN 20
#define NUM_STUDENTS 10
int main() {
char names[NUM_STUDENTS][MAX_NAME_LEN];
char *ptrs[NUM_STUDENTS];
// 输入学生姓名
printf("请输入%d个学生的姓名:\n", NUM_STUDENTS);
for (int i = 0; i < NUM_STUDENTS; i++) {
scanf("%s", names[i]);
ptrs[i] = names[i];
}
// 利用指针排序
char *temp;
for (int i = 0; i < NUM_STUDENTS; i++) {
for (int j = i + 1; j < NUM_STUDENTS; j++) {
if (strcmp(ptrs[i], ptrs[j]) > 0) {
temp = ptrs[i];
ptrs[i] = ptrs[j];
ptrs[j] = temp;
}
}
}
// 输出排序结果
printf("排序后的姓名列表为:\n");
for (int i = 0; i < NUM_STUDENTS; i++) {
printf("%d. %s\n", i + 1, ptrs[i]);
}
return 0;
}
```
该程序首先声明了一个二维字符数组 `names`,用于存储学生姓名,并且声明了一个字符指针数组 `ptrs`,用于存储学生姓名的指针。程序通过循环遍历 `names` 数组,将每个学生姓名的地址存储到 `ptrs` 数组中。
接下来,程序利用两层循环遍历 `ptrs` 数组,比较每个学生姓名的大小,如果前面的姓名比后面的姓名大,则交换它们在 `ptrs` 数组中的位置。这样一来,`ptrs` 数组中的元素就按照学生姓名的字典序排好序了。
最后,程序通过循环遍历 `ptrs` 数组,输出排序后的学生姓名。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)