解题思路:

注意事项:

参考代码:

//首先定义学生数据的结构体

struct stu{
   char number[10];  
   char name[20];
   int score[3];
};

//input函数
void input(struct stu eg[],int N){
   for(int i = 0;i < N;i++){
       scanf("%s %s %d %d %d",eg[i].number,eg[i].name,&eg[i].score[0],&eg[i].score[1],&eg[i].score[2]);
   }
}

//print函数
void print(struct stu eg[],int N){
   int s0,s1,s2,max,dex = 0;
   s0 = s1 = s2 = 0;
   max = eg[dex].score[0] + eg[dex].score[1] + eg[dex].score[2];// 比较总分的大小 
   for(int i = 0;i < N;i++){
       s0 += eg[i].score[0];//累加某科的总分
       s1 += eg[i].score[1];
       s2 += eg[i].score[2];
       if(max < eg[i].score[0] + eg[i].score[1] + eg[i].score[2]){  //当新的总分大于初始值时,把下标记录下来
           dex = i;
       }
   }
   s0 /= N;s1 /= N;s2 /= N;//求平均分
   printf("%d %d %d\n",s0,s1,s2);
   printf("%s %s %d %d %d",eg[dex].number,eg[dex].name,eg[dex].score[0],eg[dex].score[1],eg[dex].score[2]);
}

int main(){
   int N;
   scanf("%d",&N);
   struct stu eg[N];
   input(eg,N);
   print(eg,N);

   return 0;
}

点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论