题目描述
CoCo读初三了,每月都有月考,这个你懂得。班主任杜老师想知道学生这次月考的考试情况。已知班上共42人参加考试,考试科目有3门(语文,数学,英语)。现杜老师从中任意抽取n个人的考试成绩情况,杜老师想知道这n个人3门课的最高分与平均分,麻烦你帮她一下。
输入要求
第一行输入一个整数n;
接下来n行,每行先输入学生姓名(不超过10个字符,名字内不包含空格),再依次输入该学生的语文,数学,英语成绩,分数范围为[0,100]。
输出要求
输出有三行,每行两个数(最高分与平均分),保留一位小数;三行依次代表语文,数学,英语。
输入样例
3
Peter 78 85 67
Susan 89 69 90
Alice 76 83 91
输出样例
89.0 81.0
85.0 79.0
91.0 82.7
#include<stdio.h>
typedef struct{
char name[20];
double sc[3];} STU; //设计表示学生信息的结构体,包含成员:姓名,3门课程成绩。结构体类型别名为STU
STU s[42];
int main()
{
int n,i,j;
double max[3]={-1,-1,-1},ave[3]={0},sum;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s",s[i].name);
for(j=0;j<3;j++)
scanf("%lf",&s[i].sc[j]);
}
for(j=0;j<3;j++)
{for(i=0;i<n;i++)
ave[j]=ave[j]+s[i].sc[j];
ave[j]=ave[j]/n;}
//对每一门课程,求出平均分
for(j=0;j<3;j++)
{max[j]=s[0].sc[j];
for(i=0;i<n;i++)
if(s[i].sc[j]>max[j]) max[j]=s[i].sc[j];} //对每一门课程,求出最高分
for(j=0;j<3;j++)
printf("%.1f %.1f\n",max[j],ave[j]);
return 0;
}