1455 - C语言-平均分

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 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

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;
}

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;
}