求平均成績 hd 2023

q923714892發表於2020-04-06
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

#include<stdio.h> 
#include<string.h><span style="white-space:pre">			</span>//陣列清0的標頭檔案
 int main()
 {
 	int i,j,k,s;
 	double c[100],d[100],n,m,st[51][6];
 	while(scanf("%lf%lf",&n,&m)!=EOF)
 	{	
	 	memset(c,0,sizeof(double)*100);<span style="white-space:pre">		</span>//陣列清0;!!!!
	 	memset(d,0,sizeof(double)*100);
 		if(n>50||m>5)	break;
 		s=0;
 		for(i=0;i<n;i++)
 		{
 			for(j=0;j<m;j++)
 			scanf("%lf",&st[i][j]);
		 }
		 for(i=0;i<n;i++)
		 {
		 	for(j=0;j<m;j++)
		 		c[i]+=st[i][j];
		 		c[i]=c[i]*1.0/m;
		}
		printf("%.2lf",c[0]);
		for(i=1;i<n;i++)
		{
		 printf(" %.2lf",c[i]);
		}
		printf("\n");
	 for(j=0;j<m;j++)
	 {
	 	for(i=0;i<n;i++)
	 	d[j]+=st[i][j];
	 	d[j]=d[j]*1.0/n;
	 }
	 printf("%.2lf",d[0]);
	 for(i=1;i<m;i++)
	 {
	 	printf(" %.2lf",d[i]);
	 }
	 printf("\n");
	 for(i=0;i<n;i++)
	 {
	 	k=0;
	 	for(j=0;j<m;j++)
	 	{
	 		if(st[i][j]>=d[j])<span style="white-space:pre">	</span>//大於等於
	 		k++;
		 }
	 	if(k==m)	s++;
	 }
	 printf("%d\n\n",s);
	}
	return 0;
 }


相關文章