当前位置: 代码迷 >> 综合 >> 2023求平均成绩
  详细解决方案

2023求平均成绩

热度:70   发布时间:2023-10-09 19:50:18.0

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


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<iostream>
#include<stdio.h>
using namespace std;int main(){int n,m;while(scanf("%d%d",&n,&m)!=EOF){int sc[n][m];	//n个学生m科成绩 double student[n]={0};//记录某个同学的学科总成绩 double subject[m] ={0};//记录某课成绩的总成绩 for(int i=0 ;i<n ;i++){for(int j=0 ;j<m;j++){cin>>sc[i][j];student[i]+=sc[i][j];}}for(int i=0 ;i<m;i++){for(int j=0 ;j<n ;j++){subject[i]+=sc[j][i];}}for(int i=0 ;i<n ;i++){if(i==0){printf("%.2f",student[i]/m);}else{printf(" %.2f",student[i]/m);}if(i==n-1){printf("\n");} }for(int i=0 ;i<m ;i++){if(i==0){printf("%.2f",subject[i]/n);}else{printf(" %.2f",subject[i]/n);}if(i==m-1){printf("\n");} }int num = 0;for(int i=0 ;i<n ;i++){bool flag = true;for(int j=0 ;j<m ;j++){if(sc[i][j]<subject[j]/n){	 flag = false;}}if(flag){num++;	//记录各科成绩都比总成绩高的同学的个数 }}printf("%d\n\n",num);}return 0;
}