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

hdu 求平均成績

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

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int m,n,i,j,k,t;
    float a[100][100],b[100],c[100],s;
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            scanf("%f",&a[i][j]);
        }
    }
    for(i=0;i<n;i++)
    {
        s=0;
        for(j=0;j<m;j++)
        {
            s=s+a[i][j];
        }
        b[i]=s/m;
        printf("%.2lf",b[i]);
        if(i<n-1)printf(" ");
    }
    printf("\n");
    for(i=0;i<m;i++)
    {
        s=0;
        for(j=0;j<n;j++)
        {
            s=s+a[j][i];
        }
        c[i]=s/n;
        printf("%.2f",c[i]);
        if(i<m-1)printf(" ");
    }
    printf("\n");
    t=0;
    for(i=0;i<n;i++)
    {   k=1;
        for(j=0;j<m;j++)
        {
            if(a[i][j]<c[j])
            {
                k=0;
                break;
            }
        }
        if(k)
            t++;
    }
    printf("%d\n\n",t);
    }
    return 0;
}