好的,我们来看下这道题
平均分和最高分
时间限制: 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 #include<cstdio> 2 #include<cstring> 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 ",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 }