HDU_2023——求平均成绩

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
 1 #include <cstdio>
 2 int main()
 3 {
 4    int n,m,score[50][5],num;
 5    while(~scanf("%d%d",&n,&m))
 6       {
 7          double ans[2][50];
 8          for(int i=0,sum=0;i<n;i++,sum=0)
 9             {
10                for(int j=0;j<m;j++)
11                   {
12                      scanf("%d",&score[i][j]);
13                      sum=sum+score[i][j];
14                   }
15                ans[0][i]=(double)sum/m;
16             }
17          for(int i=0,sum=0;i<m;i++,sum=0)
18             {
19                for(int j=0;j<n;j++)
20                   {
21                      sum=sum+score[j][i];
22                   }
23                ans[1][i]=(double)sum/n;
24             }
25          num=0;
26          for(int i=0,flag=1;i<n;i++,flag=1)
27             {
28                for(int j=0;j<m;j++)
29                   {
30                      if(score[i][j]<ans[1][j])
31                         {flag=0;break;}
32                   }
33                if(flag)
34                   num++;
35             }
36          for(int i=0;i<n;i++)
37             printf(i==n-1?"%.2lf\n":"%.2lf ",ans[0][i]);
38          for(int i=0;i<m;i++)
39             printf(i==m-1?"%.2lf\n":"%.2lf ",ans[1][i]);
40          printf("%d\n\n",num);              
41       }
42    return 0;   
43 }

 

posted @ 2013-06-18 17:06  瓶哥  Views(387)  Comments(0Edit  收藏  举报