HDU_2023——平均成績を求める

7956 ワード

Problem Description
1つのクラスにn(n<=50)人の学生がいると仮定し、1人当たりm(m<=5)科目を受験し、各学生の平均成績と各科目の平均成績を求め、各科目の成績が平均成績以上の学生数を出力する.
 
 
Input
入力データには複数のテストインスタンスがあり、各テストインスタンスの最初の行には、学生数とカリキュラム数を表す2つの整数nとmが含まれます.次にn行のデータで、各行にm個の整数(すなわち、試験点数)が含まれる.
 
 
Output
各テストインスタンスについて、3行のデータを出力し、1行目はn個のデータを含み、n個の学生の平均成績を表し、結果は2桁の小数を保持する.2行目はm個のデータを含み、m科目の平均成績を表し、結果は2桁の小数を保持する.3行目は整数で、このクラスの各科の成績が平均成績に等しい学生の数より大きいことを示しています.
各テストインスタンスの後ろに空の行があります.
 
 
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
":"%.2lf ",ans[0][i]); 38 for(int i=0;i<m;i++) 39 printf(i==m-1?"%.2lf
":"%.2lf ",ans[1][i]); 40 printf("%d

",num); 41 } 42 return 0; 43 }