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

#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;
}

/* 请在这里填写答案 */

#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 %.lf\n",pmax->id,pmax->name,pmax->math,pmax->chinese,pmax->aver);
    return 0;
}
 
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.0;
    }
}

STU *FindMaxIndex(STU *p,int num)
{
    int maxidx = 0;
    for(int i=0;i<num;i++)
    {
        if(p[i].aver > p[maxidx].aver)
            maxidx = i;
    }
    return p+ maxidx;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632