杭电ACM2023C

xiaoxiao2021-02-28  53

#include<iostream> #include<iomanip> using namespace std; int main() { int n,m; while(cin>>n>>m) { int i,j; double*v1=new double[n];//记录学生平均分 double*v2=new double[m];//记录每科平均分 double**a=new double*[n];//根据学生人数和科目数开辟动态二维数组 for(i=0;i<n;i++) a[i]=new double[m]; for(i=0;i<n;i++) { double s1=0;//记录总分,此程序中要写在循环内以保证每个人的总分都初始为0 for(j=0;j<m;j++) { cin>>a[i][j]; s1=s1+a[i][j]; } v1[i]=s1/m; } for(i=0;i<m;i++) { double s2=0; for(j=0;j<n;j++) s2=s2+a[j][i]; v2[i]=s2/n; } bool f1=1,f2=1;//用f1、f2控制每行的最后一个空格不输出 for(i=0;i<n;i++) { if(f1) { f1=0; cout<<setiosflags(ios::fixed)<<setprecision(2)<<v1[i]; } else cout<<' '<<v1[i]; } cout<<endl; for(i=0;i<m;i++) { if(f2) { f2=0; cout<<v2[i]; } else cout<<' '<<v2[i]; } cout<<endl; double ss=0;//记录每科分数都不小于均分的人数 for(i=0;i<n;i++)//计算每科分数都不小于均分的人数 { bool flag=1; for(j=0;j<m;j++) { if(a[i][j]<v2[j]) flag=0; } if(flag) ss++; } cout<<resetiosflags(ios_base::floatfield)<<ss<<endl;//输出人数时不再保留小数 delete []v1;//释放动态开辟的空间 delete []v2; for(i=0;i<n;i++) { delete []a[i]; a[i]=NULL; } delete []a; a=NULL; cout<<'\n';//每个实例后面有一个空行 } return 0; }
转载请注明原文地址: https://www.6miu.com/read-2627659.html

最新回复(0)