题目描述
有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩)
输入
学生数量N占一行每个学生的学号、姓名、三科成绩占一行,空格分开。
输出
各门课的平均成绩 最高分的学生的数据(包括学号、姓名、3门课成绩)
样例输入
2
1 blue 90 80 70
b clan 80 70 60
样例输出
85 75 65
1 blue 90 80 70
参考代码:
#include<stdio.h>
#include<string.h>
struct Student input(struct Student student);
void print(struct Student student);
struct Student{
char xh[10];
char name[10];
int score1,score2,score3;
}student[100];
int main(void)
{
int N,i;
int average1=0,average2=0,average3=0;
int a[100],max=0;
scanf("%d",&N);
for(i=0;i<N;i++)
{
student[i]=input(student[i]);
a[i] =student[i].score1+student[i].score2+student[i].score3;
average1 +=student[i].score1;
average2 +=student[i].score2;
average3 +=student[i].score3;
if(a[max]<a[i])
{
max = i;
}
}
average1= average1 / N;
average2= average2 / N;
average3= average3 / N;
printf("%d %d %d\n",average1,average2,average3);
print(student[max]);
return 0;
}
struct Student input(struct Student student)
{
scanf("%s",student.xh);
scanf("%s",student.name);
scanf("%d%d%d",&student.score1,&student.score2,&student.score3);
return student;
}
void print(struct Student student)
{
printf("%s %s ",student.xh,student.name);
printf("%d %d %d\n",student.score1,student.score2,student.score3);
}