1. 程式人生 > >hd 2023 求平均成績

hd 2023 求平均成績

求平均成績

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


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 Author lcy Source Recommend lcy   |   We have carefully selected several similar problems for you:  
2022
 2029 2028 2037 2048 
#include<stdio.h> 
#include<string.h>
int main()
{
    int n,m,s[60][10],i,j,k,l;
    double a[60],b[10]; 
    while(scanf("%d%d",&n,&m)!=EOF)
    {
      memset(a,0,sizeof(a));
      memset(b,0,sizeof(b));
      for(i=0;i<n;i++)
      for(j=0;j<m;j++)
      scanf("%d",&s[i][j]); 
      
      for(i=0;i<n;i++)
      for(j=0;j<m;j++)
      a[i]+=s[i][j];
      for(i=0;i<n;i++)
      {
      if(i!=n-1)
      printf("%.2f ",a[i]/m);
      else
      printf("%.2f\n",a[i]/m);
                              }
      for(j=0;j<m;j++)
      for(i=0;i<n;i++)
      b[j]+=s[i][j];
      for(j=0;j<m;j++)
      {
       if(j!=m-1)
       printf("%.2f ",b[j]/n);
       else
       printf("%.2f\n",b[j]/n);
                      }
       
       l=0;
       for(i=0;i<n;i++)
       {
       k=0;
       for(j=0;j<m;j++)
       {       
       if(s[i][j]>=b[j]/n)
       k++;
                       }
       if(k==m)
       l++;
       }
       printf("%d\n\n",l);
                
                                   }
return 0;    
}
//怎樣呼叫依次各個成績 二維陣列靈活運用