1455 - C语言-平均分
有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩)
Input
学生数量N占一行每个学生的学号、姓名、三科成绩占一行,空格分开。
Output
各门课的平均成绩 最高分的学生的数据(包括学号、姓名、3门课成绩)
Examples
Input
2 1 blue 90 80 70 b clan 80 70 60
Output
85 75 65 1 blue 90 80 70
Solution C
struct number { char id[10],name[10]; int a,b,c; }num[100]; int main(int argc, char* argv[]) { int n,i,max,maxi; double va,vb,vc; while(~scanf("%d",&n)) { va=vb=vc=0; for(i=0;i<n;i++) { scanf("%s%s%d%d%d",num[i].id,num[i].name,&num[i].a,&num[i].b,&num[i].c); va+=num[i].a; vb+=num[i].b; vc+=num[i].c; if(i==0) { max=num[i].a; maxi=i; if(num[i].b>max) { max=num[i].b; maxi=i; } if(num[i].c>max) { max=num[i].c; maxi=i; } } else { if(num[i].a>max) { max=num[i].a; maxi=i; } if(num[i].b>max) { max=num[i].b; maxi=i; } if(num[i].c>max) { max=num[i].c; maxi=i; } } } printf("%.0lf %.0lf %.0lf\n",va/n,vb/n,vc/n); printf("%s %s %d %d %d\n",num[maxi].id,num[maxi].name,num[maxi].a,num[maxi].b,num[maxi].c); } return 0; }
Solution C++
#include <iostream> #include <cstdio> #include <algorithm> using namespace std; int main () { int T,a[500],b[500],c[500],sum[500]; char xue[500][500],name[500][500]; cin>>T; int A = 0,B = 0,C = 0; int MAX = 0; for (int i = 0;i < T; i++) { scanf("%s %s %d %d %d",xue[i],name[i],&a[i],&b[i],&c[i]); sum[i] = a[i] + b[i] + c[i]; MAX = max (sum[i],MAX); A += a[i];B += b[i];C += c[i]; } A = A/T;B = B/T;C = C/T; for (int i = 0;i < T; i++) { if (MAX == sum[i]) printf("%d %d %d\n%s %s %d %d %d\n",A,B,C,xue[i],name[i],a[i],b[i],c[i]); } return 0; }