C语言结构体问题求解

C语言结构体问题求解!
定义描述学生信息(学号、姓名、性别、出生日期、4门课程成绩和平均分)的结构体类型。 

struct date{ 
        int month;
        int day;
        int year;
};
struct stu{
        int num;
        char name[20];
        char sex;
        struct date birthday;
        float score[4];
         float ave;
 };

1)定义输入单个学生信息的函数Input(struct stu *a) ;
2)定义输出单个学生信息的函数Output(struct stu a) ;
3)定义输入一批学生信息的函数Inputarray(struct stu a[ ],int n);
4)定义输出一批学生信息的函数Outputarray(struct stu a[ ],int n));
编程建立的结构体数组通过输入输入存放全班(最多50人)学生信息,输出平均分最高的学生的学号、姓名、性别、出生日期、4门课程成绩和平均分信息。


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

#define MAX_STUDENTS 50
#define MAX_NAME_LENGTH 20

struct student {
    char id[10];
    char name[MAX_NAME_LENGTH];
    char sex[5];
    char birthdate[20];
    float scores[4];
    float avg_score;
};

void input(struct student *a) {
    printf("请输入学生的信息:\n");
    printf("学号:");
    scanf("%s", a->id);
    printf("姓名:");
    scanf("%s", a->name);
    printf("性别:");
    scanf("%s", a->sex);
    printf("出生日期:");
    scanf("%s", a->birthdate);
    printf("四门课程成绩:");
    for (int i = 0; i < 4; i++) {
        scanf("%f", &(a->scores[i]));
    }
    a->avg_score = (a->scores[0] + a->scores[1] + a->scores[2] + a->scores[3]) / 4;
}

void output(struct student a) {
    printf("学号:%s,姓名:%s,性别:%s,出生日期:%s,四门课程成绩:%.2f, %.2f, %.2f, %.2f,平均分:%.2f\n", 
        a.id, a.name, a.sex, a.birthdate, a.scores[0], a.scores[1], a.scores[2], a.scores[3], a.avg_score);
}

void input_array(struct student a[], int n) {
    for (int i = 0; i < n; i++) {
        input(&(a[i]));
    }
}

void output_array(struct student a[], int n) {
    for (int i = 0; i < n; i++) {
        output(a[i]);
    }
}

int main() {
    int n;
    printf("请输入学生人数:");
    scanf("%d", &n);
    struct student students[MAX_STUDENTS];
    input_array(students, n);
    float max_avg_score = 0;
    int max_index = 0;
    for (int i = 0; i < n; i++) {
        if (students[i].avg_score > max_avg_score) {
            max_avg_score = students[i].avg_score;
            max_index = i;
        }
    }
    printf("平均分最高的学生信息如下:\n");
    output(students[max_index]);
    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^