解题思路:

注意事项:

参考代码:

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

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 人评分

  评论区