求平均成绩

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


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<stdio.h>
 2 #include<stdlib.h>
 3 #include<math.h>
 4 #include<string.h>
 5 int main()
 6 {
 7     int m,n;
 8     int flag;
 9     double st[100][10];
10     double stsum;
11     double stave[100];
12     int i,j;
13     int count;
14     double sum,ave;
15     double mave[20];
16     double msum[20];
17     while (scanf("%d",&n)!=EOF)
18     {
19         count = 0;
20         scanf("%d",&m);
21         memset(st,0,sizeof(st));
22         memset(stave,0,sizeof(stave));
23         memset(mave,0,sizeof(mave));
24         memset(msum,0,sizeof(msum));
25         for (i=1;i<=n;i++)
26         {
27             stsum=0;
28             for (j=1;j<=m;j++)
29             {
30                 scanf("%lf",&st[i][j]);
31                 stsum+=st[i][j];
32                 msum[j]+=st[i][j];
33             }
34             stave[i]=stsum/m;
35         }
36         for (i=1;i<=m;i++)
37             mave[i]=msum[i]/n;
38         for (i=1;i<=n;i++)
39         {
40             flag=1;
41             for (j=1;j<=m;j++)
42             {
43                 if (st[i][j]<mave[j])
44                 {
45                     flag=0;
46                     break;
47                 }
48             }
49             if (flag) count++;
50         }
51         for (i=1;i<n;i++) printf("%.2lf ",stave[i]);
52         printf("%.2lf\n",stave[i]);
53         for (j=1;j<m;j++) printf("%.2lf ",mave[j]);
54         printf("%.2lf\n",mave[j]);
55         printf("%d\n\n",count);
56     }
57     return 0;
58 }