user-0 提问: 有5个学生，每个学生的数据包括学号、姓名、三门课的成在此基础上编写求max函数，求平均成绩最高分的学生的数据，编写函数average求总平均分，并在主函数中调用

回复:
user: user-1
content: #include<stdio.h> #include<string.h>  struct student{     char studid[12];     char name[12];     int sub1;     int sub2;     int sub3; }data[5];  int main() {     void input(struct student data[5]);     void print(struct student data[5]);     void max(struct student data[5]);     void average(struct student data[5]);     input(data);     printf("学号  姓名  科目一  科目二  科目三\n");     print(data);      max(data);     average(data);      return 0; }  void input(struct student data[]) {     int i;     printf("请输入相关的学生信息:\n");     for(i=0;i<5;i++){         scanf("%s",data[i].studid);         scanf("%s",data[i].name);         scanf("%d",&data[i].sub1);         scanf("%d",&data[i].sub2);         scanf("%d",&data[i].sub3);     } } void print(struct student data[]) {     int i;      for(i=0;i<5;i++){         printf("%s %s %d %d %d",data[i].name,data[i].studid,data[i].sub1,data[i].sub2,data[i].sub3);         printf("\n");     }  } void max(struct student data[]) {     int i=0, idx;     int a[5] = {0};     int max = 0;     max = a[0];     for(i=0;i<5;i++){         a[i]=(data[i].sub1+data[i].sub2+data[i].sub3)/3;         //if(strcmp(a[i],a[i+1])<0)         //if(a[i] < a[i+1])         if(max < a[i]) {             max = a[i];             idx = i;         }     }     printf("%d\n",max);     printf("%s %s %d % d %d\n",             data[idx].name, data[idx].studid,             data[idx].sub1, data[idx].sub2,             data[idx].sub3); }  void average(struct student data[]) {     int i=0;     int all=0;     //int a[5];     int average=0;     for(i=0;i<5;i++){         //a[i]=(data[i].sub1+data[i].sub2+data[i].sub3);         //all += a[i];         all +=(data[i].sub1+data[i].sub2+data[i].sub3);         //all += a[i];     }     average = all/5;     printf("%d\n", average); } 供参考～

user: user-2
content: 供参考：#include<stdio.h>  struct student{ char   studid[12]; char   name[12]; int    sub1; int    sub2; int    sub3; }data[5];   int main(int argc, char* argv[]) {       void input(struct student data[5]);      void print(struct student data[5]);      void max(struct student data[5]);      void average(struct student data[5]);      input(data);      //printf("学号 姓名 科目一 科目二 科目三\n");      max(data);      average(data);       print(data);       return 0; }  void input(struct student data[]) {      int i;      printf("\n请输入五个学生信息:\n");      printf("学号 姓名 科一 科二 科三\n");      for(i=0;i<5;i++){         scanf("%s",data[i].studid);         scanf("%s",data[i].name);         scanf("%d",&data[i].sub1);         scanf("%d",&data[i].sub2);         scanf("%d",&data[i].sub3);      } }  void print(struct student data[]) {      int i;      printf("\n学号 姓名 科目一 科目二 科目三\n");      for(i=0;i<5;i++){         printf(" %s   %s   %d    %d    %d",         data[i].studid,data[i].name,data[i].sub1,data[i].sub2,data[i].sub3);         printf("\n");      } }  void max(struct student data[]) {      int i,j;      int a[5]={0};      int max=0;            for(i=0;i<5;i++)          a[i]=(data[i].sub1+data[i].sub2+data[i].sub3)/3;            max=a[0];   //if(strcmp(a[i],a[i+1])<0)      for(i=0;i<5;i++)          if(max < a[i]){                max=a[i];                j=i;          }      printf("\nmax:%s   %s   %d    %d    %d   maxavg=%d\n",      data[j].studid,data[j].name,data[j].sub1,data[j].sub2,data[j].sub3,max); }  void average(struct student data[]) {      int i=0;      int all=0;      int a[5]={0};      int average=0;      for(i=0;i<5;i++){          a[i]=(data[i].sub1+data[i].sub2+data[i].sub3)/3;          all+=a[i];      }      average=all/5;      printf("\naverage=%d\n",average); }