1. 程式人生 > >【ACM】杭電OJ 2023

【ACM】杭電OJ 2023

注意最後又兩個\n 

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 1000;
int a[maxn][maxn];
double grade[maxn];
double average[maxn];
int main ()
{
	int m,n,i,j,flag,count;//n個學生,m門課程(n行 m列)
	while(scanf("%d%d",&n,&m)!=EOF)
	{
		for(i=1;i<=n;i++)
		{
			for(j=1;j<=m;j++)
			{
				scanf("%d",&a[i][j]);
			}
		}
		memset(grade,0,sizeof(grade));//每人的平均分
		memset(average,0,sizeof(average));//每門課程的平均分
		for(i=1;i<=n;i++)
		{
			for(j=1;j<=m;j++)
			{
				grade[i]+=a[i][j];
			}
			grade[i]/=(m*1.0);
			if(i==1)
				printf("%.2lf",grade[i]);
			else
				printf(" %.2lf",grade[i]);
		}
		printf("\n");
		for(i=1;i<=m;i++)
		{
			for(j=1;j<=n;j++)
			{
				average[i]+=a[j][i];
			}
			average[i]/=(n*1.0);
			if(i==1)
				printf("%.2lf",average[i]);
			else
				printf(" %.2lf",average[i]);
		}
		printf("\n");
		count=0;
		for(i=1;i<=n;i++)
		{
			flag=1;
			for(j=1;j<=m;j++)
			{
				if(a[i][j] < average[j])
				{
					flag=0;
					break;
				}
			}
			if(flag)
			{
				count++;
			}
		}
		printf("%d\n\n",count);
	}
	return 0;
}