学生成绩的统计,有N名学生

学生成绩的统计
有N名学生,每个学生的数据包括学号、姓名、数学成绩、语文成绩,从键盘输入N名学生的数据,并计算出每个学生的平均成绩,最后显示最高平均分的学生的信息,包括学号,姓名,两门课的成绩,平均分数(保留小数点后一位)。需要完成两个函数;

函数接口定义:

void InputData(STU *p,int num);
STU *FindMaxIndex(STU *p,int num);

裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:

#include <stdio.h>
#define N 5
typedef struct
{
    int id;
    char name[20];
    int math;
    int chinese;
    double aver;
}STU;
void InputData(STU *p,int num);
STU *FindMaxIndex(STU *p,int num);
int main(void)
{
    STU classone[N];
    STU *pmax;
    InputData(classone,N);
    pmax=FindMaxIndex(classone,N);
    printf("maxinfo:%d %s %d %d %.1f\n",pmax->id,pmax->name,pmax->math,pmax->chinese,pmax->aver);
    return 0;
}


/* 请在这里填写答案 */
输入样例:

2 78 34
1 67 89
4 90 67
3 85 95
5 56 89

输出样例:

maxinfo:385 95 90.0

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB


void InputData(STU *p,int num)
{
    for (int i = 0; i < num; i++) {
        scanf ("%d %s %d %d", &p[i].id, &p[i].name, &p[i].math, &p[i].chinese);

        p[i].aver = (p[i].math + p[i].chinese) / 2;
    }
}

STU *FindMaxIndex(STU *p,int num)
{
    STU *ret = p;

    for (int i = 1; i < num; i++) {
        if (ret->aver < p[i].aver) {
            ret = p + i;
        }
    }

    return ret;
}