成绩处理

成绩处理

时间: 1ms        内存:128M

描述:

有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

提示:

参考答案(内存最优[756]):

#include<stdio.h>
#define N 100
struct student
{
    char num[6];
    char name[8];
    int score[4];
    int avr;
} stu[N];
int r;

int main()
{
    int sum3=0,sum1=0,sum2=0,maxi;
    int sum;
    int max;
    scanf("%d",&r);
    int i,j;
    for(i=0; i<r; i++)
    {
        scanf("%s%s",stu[i].num,stu[i].name);
        for(j=0; j<3; j++)
        {
            scanf("%d",&stu[i].score[j]);
        }
    }
    max=0;
    maxi=0;
    for(i=0; i<r; i++)
    {
        sum=0;
        sum1+=stu[i].score[0];
        sum2+=stu[i].score[1];
        sum3+=stu[i].score[2];
        for(j=0; j<3; j++)
            sum+=stu[i].score[j];
        stu[i].avr=sum/3;

        if(sum>max)
        {
            max=sum;
            maxi=i;
        }
    }
    printf("%d %d %d",sum1/r,sum2/r,sum3/r);
    putchar('\n');
    printf("%s %s %d %d %d",stu[maxi].num,stu[maxi].name,stu[maxi].score[0],stu[maxi].score[1],stu[maxi].score[2]);
    return 0;
}

参考答案(时间最优[0]):


#include<stdio.h>
#define N 100 
struct student
{
char num[6];
char name[8];
int score[4];
int avr;
}stu[N];
int r;

int main()
{
  int sum3=0,sum1=0,sum2=0,maxi;
  int sum;
  int max;
  scanf("%d",&r);
  int i,j;
  for(i=0;i<r;i++)
  {
   scanf("%s%s",stu[i].num,stu[i].name);
   for(j=0;j<3;j++)
   {
    scanf("%d",&stu[i].score[j]);
   }

}

max=0;
maxi=0;
 for(i=0;i<r;i++)
 {
  sum=0;
  sum1+=stu[i].score[0];
  sum2+=stu[i].score[1];
  sum3+=stu[i].score[2];
  for(j=0;j<3;j++)
    sum+=stu[i].score[j];
  stu[i].avr=sum/3;
  
  if(sum>max)
  {
  max=sum;
  maxi=i;
  }

 }
printf("%d %d %d",sum1/r,sum2/r,sum3/r);
putchar('\n');

printf("%s %s %d %d %d",stu[maxi].num,stu[maxi].name,stu[maxi].score[0],stu[maxi].score[1],stu[maxi].score[2]);


return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注