广州网站设计成功柚米科技,怎么生成网址链接,有赞微商城下载,腾讯如何做网站Problem Description 假设一个班有n(n50)个学生#xff0c;每人考m(m5)门课#xff0c;求每个学生的平均成绩和每门课的平均成绩#xff0c;并输出各科成绩均大于等于平均成绩的学生数量。
Input 输入数据有多个测试实例#xff0c;每个测试实例的第一行包括两个…Problem Description 假设一个班有n(n50)个学生每人考m(m5)门课求每个学生的平均成绩和每门课的平均成绩并输出各科成绩均大于等于平均成绩的学生数量。
Input 输入数据有多个测试实例每个测试实例的第一行包括两个整数n和m分别表示学生数和课程数。然后是n行数据每行包括m个整数即考试分数。
Output 对于每个测试实例输出3行数据第一行包含n个数据表示n个学生的平均成绩结果保留两位小数第二行包含m个数据表示m门课的平均成绩结果保留两位小数第三行是一个整数表示该班级中各科成绩均大于等于平均成绩的学生数量。 每个测试实例后面跟一个空行。
Sample Input
2 2 5 10 10 20
Sample Output
7.50 15.00 7.50 15.00 1
题目解析
简单来说首先多组数据输入第一行输入两个整数nmn代表学生人数m代表有m科学科然后输出每行代表每个学生的各科成绩每列代表各个学生的该科目分数 例如 学生1第一科分数、学生1第二科分数、学生1第三科分数 … 学生1第m科分数 学生2第一科分数、学生2第二科分数、学生2第三科分数 … 学生1第m科分数 学生3第一科分数、学生3第二科分数、学生3第三科分数 … 学生1第m科分数 …… 学生n第一科分数、学生n第二科分数、学生n第三科分数 … 学生n第m科分数 以此类推 要求输出三行 第一行输出n个学生的平均成绩结果保留两位小数 第二行输出m科分数的平均成绩结果保留两位小数 第三行输出一个整数表示该班级中各科成绩均大于等于平均成绩的学生数量。
思路分析
简单来说首先多组数据输入第一行输入两个整数a(学生数目)b(学科科目数)然后以此输入一行一行的输入表示每一个学生的各科分数每行表示每个学生的各科分数每列表示单独一科每个学生的分数
代码如下
#includestdio.h
int main()
{int a[50][50];double x,y,aver1[50],aver2[50],sum; //aver1该数组存储每个学生的各科的平均成绩aver2该数组存储每科学科的平均成绩int i,j,n,m,count,p;while(~scanf(%d%d,n,m)){count0; //表示计数记录那些各科都高于平均分的学生的人数for(i0;in;i)for(j0;jm;j)scanf(%d,a[i][j]); //录入每个学生的各科成绩for(i0;in;i){sum0;for(j0;jm;j)suma[i][j];aver1[i]sum/m; //将每个学生的各科的平均成绩给存储到aver1数组中}for(j0;jm;j){sum0;for(i0;in;i)suma[i][j];aver2[j]sum/n; //将每科学科的平均成绩给存储到aver2数组中}for(i0;in;i){p1;for(j0;jm;j) //这个for循环表示每个学生的所有科目的成绩进行与aver2数组存储的各科科目平均分进行比较if(a[i][j]aver2[j]) //如果所有学生的各科学科分数都比各个学科的平均分要低的话{p0; //p0break; //跳出循环}if(p) //如果p0的话即有学生的各科成绩都比各科的平均分要高或者一样count; //人数加一}for(i0;in-1;i)printf(%.2lf ,aver1[i]); //输出格式是保留两位小数这里是将前n-1位学生各科学科的平均分输出这里每一科成绩之后都会有个空格printf(%.2lf\n,aver1[i]); //输出最后一位学生的各科学科的平均分这里没有空格for(i0;im-1;i)printf(%.2lf ,aver2[i]); //同理输出格式是保留两位小数这里输出的是前m-1科学科的平均分这里每一科学科的平均分最后都会有个空格printf(%.2lf\n,aver2[i]); //输出最后一科的学科平均分这里的最后没有空格printf(%d\n\n,count); //输出count也就是每科都超过各个学科的平均分的学生人数return 0;
}