落絮飞雁的个人网站

顺流而下,把梦做完

HDOJ2023:求平均成绩

求平均成绩

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 61374    Accepted Submission(s): 14701

Problem Description
假设一个班有n(n<=50)个学生,每人考m(m<=5)门课,求每个学生的平均成绩和每门课的平均成绩,并输出各科成绩均大于等于平均成绩的学生数量。
 
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
 

#include
#include
int main()
{
 int n, m;
 int i, j;
 int t, d;
 int list[50][5], stu[50], avg[5];
 while (scanf("%d%d", &n, &m) != EOF)
 {
 memset(list, 0, sizeof(list));
 memset(stu, 0, sizeof(stu));
 memset(avg, 0, sizeof(avg));
 for (i = 0; i < n; i++)
 {
 for (j = 0; j < m; j++)
 {
 scanf("%d", &list[i][j]);
 avg[j] += list[i][j];
 stu[i] += list[i][j];
 }
 }
 for (i = 0; i < n; i++)
 printf("%.2lf%c", stu[i] *1.0/ m, i < n - 1 ? ' ' : ' n');
 for (j = 0; j < m; j++)
 printf("%.2lf%c", avg[j] *1.0/ n, j< m - 1 ? ' ' : ' n');
 for (t = i = 0; i < n; i++)
 {
 for (d = 1, j = 0; j < m; j++)
 {
 if (list[i][j] < 1.0 * avg[j] / n)
 {
 d = 0;
 break;
 }
 }
 if (d) t++;
 }
 printf("%dnn", t);
 }
 return 0;
}

开二维数组比较方便


原文标题:HDOJ2023:求平均成绩|落絮飞雁的个人网站
原文链接:https://www.luoxufeiyan.com/2014/07/20/hdoj2023%ef%bc%9a%e6%b1%82%e5%b9%b3%e5%9d%87%e6%88%90%e7%bb%a9/
授权协议:创作共用 署名-非商业性使用 2.5 中国大陆
除注明外,本站文章均为原创;转载时请保留上述链接。