好的,我们来看下这道题
平均分和最高分
时间限制: 1 Sec 内存限制: 128 MB
题目描述
有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
正常人的思路都应该是用结构体,但是
我不正常
好吧,开个玩笑
真实原因是我不会结构体qwq
所以我们不如换个思路,不用存储每一个学生的信息,在输入时与之前进行比较,来实现更新,并且开一个计数器来求平均值
好的这道题做完了
附上代码
1 #include2 #include 3 using namespace std; 4 char b[15],b1[15]; 5 int main() 6 { 7 int N,c,d,e,jishu=0,c1,d1,e1,cmax=0,dmax=0,emax=0,i; 8 char a,a1; 9 scanf("%d",&N);10 for(i=1;i<=N;i++)11 {12 scanf(" %c %s%d%d%d",&a,b,&c,&d,&e);13 cmax+=c;14 dmax+=d;15 emax+=e;16 if(c+d+e>jishu)17 {18 jishu=c+d+e;19 a1=a;20 for(int j=0;j<15;j++)21 {22 b1[j]=b[j];23 }24 c1=c;25 d1=d;26 e1=e;27 }28 }29 printf("%d %d %d\n",cmax/(i-1),dmax/(i-1),emax/(i-1));30 printf("%c %s %d %d %d",a1,b1,c1,d1,e1);31 return 0;32 }