非优秀的程序员常常把空间和时间消耗殆尽,优秀的程序员则总是有足够的空间和时间去完成编程任务,而且配合近乎完美。
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>
#include <stdlib.h>
struct stu
{
char id[10],name[20]; //学号和姓名
int gra_a,gra_b,gra_c; //三科成绩
};
int main()
{
int n;
scanf("%d",&n); //输入学生的数量
int sum_a=0,sum_b=0,sum_c=0; //用来记录三科成绩的总值以便求平均值
struct stu mess[n+1];
int f,max=0; //记录最三科成绩的最大值和学号
for(int i=1;i<=n;i++)
{
scanf("%s %s %d%d%d",mess[i].id,mess[i].name,&mess[i].gra_a,&mess[i].gra_b,&mess[i].gra_c);//输入学生信息
if(mess[i].gra_a+mess[i].gra_b+mess[i].gra_c>max) //判断总分最大的学生
{
f=i;
max=mess[i].gra_a+mess[i].gra_b+mess[i].gra_c;
}
sum_a+=mess[i].gra_a; //求和以便于求平均值
sum_b+=mess[i].gra_b;
sum_c+=mess[i].gra_c;
}
printf("%d %d %d\n",sum_a/n,sum_b/n,sum_c/n);//输出平均值
printf("%s %s %d %d %d",mess[f].id,mess[f].name,mess[f].gra_a,mess[f].gra_b,mess[f].gra_c);//输出总和最大的学生的信息
return 0;
}