Description
有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩)
Input
学生数量N占一行每个学生的学号、姓名、三科成绩占一行,空格分开。
Output
各门课的平均成绩 最高分的学生的数据(包括学号、姓名、3门课成绩)
Sample Input
2
1 blue 90 80 70
b clan 80 70 60
Sample Output
85 75 65
1 blue 90 80 70
在这里插入代码片
#include<stdio.h>
struct chengji{
char numble_call[100],name[50];
int one,two,three,all;
};
void input(struct chengji *bg,int n);
void print(struct chengji *bg,int n);
void overage(struct chengji *bg,int n);
int main(void)
{
int n;
scanf("%d",&n);
struct chengji bg[10000];
input(bg,n);
overage(bg,n);
print(bg,n);
return 0;
}
void input(struct chengji *bg,int n)
{
for(int i = 0;i < n;i++)
{
scanf("%s%s%d%d%d",bg[i].numble_call,bg[i].name,&bg[i].one,&bg[i].two,&bg[i].three);
}
}
void print(struct chengji *bg,int n)
{
int sum;
for(int i = 0;i < n;i++)
{
bg[i].all = bg[i].one + bg[i].two + bg[i].three;
bg[n].all = bg[0].all;
if(bg[i].all >= bg[n].all)
{
bg[n].all = bg[i].all;
sum = i;
}
}
printf("%s %s %d %d %d",bg[sum].numble_call,bg[sum].name,bg[sum].one,bg[sum].two,bg[sum].three);
}
void overage(struct chengji *bg,int n)
{
double sum[3];
for(int i = 0;i < n;i++)
{
sum[0] += bg[i].one;
}
for(int i = 0;i < n;i++)
{
sum[1] += bg[i].two;
}
for(int i = 0;i < n;i++)
{
sum[2] += bg[i].three;
}
printf("%.0f %.0f %.0f\n",sum[0] / n,sum[1] / n,sum[2] / n);
}