1. 程式人生 > >杭電--------求平均成績

杭電--------求平均成績


#include<stdio.h>
#include<iostream>
#include<algorithm>
#include <cstring>
#include <string>
#include <math.h>
#include <cstdio>
#include <cmath>
#include<string.h>
#include <stdlib.h>
using namespace std;
typedef long long ll;
typedef double de;
typedef char ar;
int main()
{
    ll n,m;
    de a[55][8];
    while(cin>>n>>m)
    {
        for(ll i=0; i<n; i++)                     //輸入資料的同時直接把個人的平均成績求出來,存在二維陣列最後面。
        {
            de sum=0;
            for(ll j=0; j<m; j++)
            {
                cin>>a[i][j];
                sum=sum+a[i][j];
            }
            a[i][m]=sum*1.0/m;
        }
        for(int i=0; i<n; i++)                  //輸出個人平均成績。
        {
            if(i<n-1)
                printf("%.2f ",a[i][m]);
            else
                printf("%.2f\n",a[i][m]);
        }
        for(ll j=0; j<m; j++)                    //計算所有同學每一科的平均成績,存在二維陣列最下面,並做輸出。
        {
            de num=0;
            for(ll i=0; i<n; i++)
            {
                num=num+a[i][j];
            }
            a[n][j]=num/n;
            if(j<m-1)
                printf("%.2f ",a[n][j]);
            else
                printf("%.2f\n",a[n][j]);
        }
        ll x=0;
        for(int i=0; i<n; i++)     //通過二維陣列最下面的所有人每一科平均成績與上面的值進行比較,如果都滿足則進行“x++”
        {
            ll y=0;
            for(int j=0; j<m; j++)
            {
                if(a[i][j]>=a[n][j])
                    y++;
                if(y==m)
                    x++;
            }
        }
        printf("%lld\n",x);
        cout<<endl;           //最後記得再空出一行。(題意看仔細)
    }
    return 0;
}