字符串代码,排序函数问题

某班级有10名同学,请编写程序完成如下功能:

  1. 录入并保存10位同学的姓名。

  2. 依次输出这10位同学的姓名。

  3. 根据用户输入的姓名,查找该同学是否存在。

  4. 按照序号更改某位同学的姓名。

  5. 对所有同学姓名按照字典序排序。

利用函数分模块完成上述功能,然后在主函数中调用执行。
能敲一下吗
非常感谢


#include <stdio.h>
#include <string.h>
#include <stdbool.h>

#define NUM_STUDENTS 10  // 班级人数

// 学生信息结构体
typedef struct {
    char name[20];  // 姓名
} Student;

// 函数声明
void print_students(const Student* students);  // 依次输出这10位同学的姓名
bool search_student(const Student* students, const char* name);  // 根据用户输入的姓名,查找该同学是否存在
void update_student(Student* students, int index, const char* name);  // 按照序号更改某位同学的姓名
void sort_students(Student* students);  // 对所有同学姓名按照字典序排序

int main()
{
    Student students[NUM_STUDENTS];  // 学生信息数组

    // 录入并保存10位同学的姓名
    for (int i = 0; i < NUM_STUDENTS; i++) {
        printf("请输入第%d位同学的姓名:", i + 1);
        scanf("%s", students[i].name);
    }
    print_students(students);

    char name[20];
    printf("请输入要查找的学生的姓名:");
    scanf("%s", name);

    if (search_student(students, name)) {
        printf("该学生存在。\n");
    } else {
        printf("该学生不存在。\n");
    }

    int index;
    printf("请输入要更改的学生的序号(1 ~ %d):", NUM_STUDENTS);
    scanf("%d", &index);
    printf("请输入新的姓名:");
    scanf("%s", name);
    update_student(students, index - 1, name);
    print_students(students);

    sort_students(students);
    print_students(students);

    return 0;
}

// 依次输出这10位同学的姓名
void print_students(const Student* students)
{
    for (int i = 0; i < NUM_STUDENTS; i++) {
        printf("第%d位同学的姓名是 %s。\n", i + 1, students[i].name);
    }
}

// 根据用户输入的姓名,查找该同学是否存在
bool search_student(const Student* students, const char* name)
{
    for (int i = 0; i < NUM_STUDENTS; i++) {
        if (strcmp(students[i].name, name) == 0) {
            return true;
        }
    }

    return false;
}

// 按照序号更改某位同学的姓名
void update_student(Student* students, int index, const char* name)
{
    strcpy(students[index].name, name);
}

// 对所有同学姓名按照字典序排序
void sort_students(Student* students)
{
    // 选择排序法
    for (int i = 0; i < NUM_STUDENTS - 1; i++) {
        int min_index = i;  // 最小值的下标
        for (int j = i + 1; j < NUM_STUDENTS; j++) {
            if (strcmp(students[j].name, students[min_index].name) < 0) {
                min_index = j;
            }
        }

        // 交换
        Student temp = students[i];
        students[i] = students[min_index];
        students[min_index] = temp;
    }
}

这种代码,如果你很是想要的话,建议你去悬赏!!在这种免费的地方,很难有人专门帮你敲这个代码的!!
其实,最简单的还是,你带着自己写好的代码来!!对于哪儿不懂得,可以提问,我们肯定会帮你分析的!!但是,你一个代码片段也没有,就让我们白帮忙写一个代码……??__
之前我也是这样过来的,熟悉了就好了!!

在做