c语言问题关于结构体函数

每个学生信息存储在一个结结构体中,包括学号,数学,英语,计算机成绩,平均成绩五部分 。Ave负责计算一个学生的平均成绩,Find负责找到平均成绩最高的学生,printf负责按表格的函数输出全部信息,内容左对齐,表头为“No,Math,Eng,Comp,Ave”,要求输出一个班平均成绩最高的学生(不少于8人)


#include <stdio.h>  
#include <stdlib.h>  
  
#define MAX_STUDENTS 100 // 定义学生最大数量  
  
struct student {  
    int id;  
    float math;  
    float english;  
    float computer;  
    float ave;  
};  
  
// 计算一个学生的平均成绩  
void calculate_average(struct student s) {  
    s.ave = (s.math + s.english + s.computer) / 3.0;  
}  
  
// 找到平均成绩最高的学生  
void find_highest_average(struct student students[], int n, float *最高平均成绩, int *最高平均成绩学生) {  
    *最高平均成绩 = 0.0;  
    *最高平均成绩学生 = -1;  
    for (int i = 0; i < n; i++) {  
        if (students[i].ave > *最高平均成绩) {  
            *最高平均成绩 = students[i].ave;  
            *最高平均成绩学生 = i;  
        }  
    }  
}  
  
// 按表格的函数输出全部信息  
void print_table(struct student students[], int n) {  
    // 输出表头  
    printf("No,Math,Eng,Comp,Ave\n");  
    // 输出每个学生的信息  
    for (int i = 0; i < n; i++) {  
        printf("%d,%0.2f,%0.2f,%0.2f,%0.2f\n", students[i].id, students[i].math, students[i].english, students[i].computer, students[i].ave);  
    }  
}  
  
int main() {  
    struct student students[MAX_STUDENTS]; // 学生数组  
    int n = 0; // 学生数量  
    float class_average = 0.0; // 班级平均成绩  
    int class_average_student = -1; // 班级平均成绩最高的学生  
  
    // 输入每个学生的信息  
    while (n < MAX_STUDENTS) {  
        int id;  
        float math, english, computer;  
        printf("请输入第%d个学生的学号,数学成绩,英语成绩,计算机成绩(按顺序输入),以空格分隔:", n + 1);  
        scanf("%d%f%f%f", &id, &math, &english, &computer);  
        students[n].id = id;  
        students[n].math = math;  
        students[n].english = english;  
        students[n].computer = computer;  
        calculate_average(students[n]); // 计算平均成绩  
        class_average += students[n].ave; // 更新班级平均成绩  
        n++;  
        if (n == MAX_STUDENTS) {  
            break; // 学生数量已达到最大值,结束输入  
        }  
    }  
    class_average /= n; // 计算班级平均成绩  
  
    // 找到平均成绩最高的学生  
    find_highest_average(students, n, &class_average, &class_average_student);  
  
    // 输出全部信息  
    print_table(students, n);  
  
    return 0;  
}