写一个c语言程序利用指针将10个学生的姓名排序。
时间: 2023-06-18 14:03:21 浏览: 97
用指针实现的C语言排序算法
下面是一个简单的 C 语言程序,使用指针将 10 个学生的姓名排序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NAME_LEN 50
#define NUM_STUDENTS 10
int main() {
char names[NUM_STUDENTS][MAX_NAME_LEN];
char *p[NUM_STUDENTS];
int i, j;
// 读入学生姓名
for (i = 0; i < NUM_STUDENTS; i++) {
printf("请输入第 %d 个学生的姓名:", i+1);
scanf("%s", names[i]);
p[i] = names[i];
}
// 使用冒泡排序法按字典序排序
for (i = 0; i < NUM_STUDENTS - 1; i++) {
for (j = 0; j < NUM_STUDENTS - i - 1; j++) {
if (strcmp(p[j], p[j+1]) > 0) {
char *temp = p[j];
p[j] = p[j+1];
p[j+1] = temp;
}
}
}
// 输出排序结果
printf("按字典序排序后的学生姓名为:\n");
for (i = 0; i < NUM_STUDENTS; i++) {
printf("%s\n", p[i]);
}
return 0;
}
```
程序中使用了一个二维字符数组 `names` 存储学生姓名,同时定义了一个字符指针数组 `p`,用于存储指向每个学生姓名的指针。首先通过循环读入 10 个学生的姓名,并将每个姓名的指针存储到 `p` 数组中。接着使用冒泡排序法按字典序对 `p` 数组进行排序,最后输出排好序的学生姓名。
阅读全文