HDOJ2023【数组】

来源:互联网 发布:js获取时间毫秒数 编辑:程序博客网 时间:2024/05/16 11:26

HDOJ2023

运用动态数组做,就麻烦了一点。

#include <iostream>using namespace std;int main(){    int m,n;    while(cin>>n>>m)    {   double **a=new double *[n];        for(int i=0;i<n;i++)        {            a[i]=new double [m];        }                       //创建动态二维数组        double *Student=new double[n];//存储每个学生总成绩         double *Subject=new double[m];//存储每门课程成绩总和         for(int i=0;i<n;i++)Student[i]=0.0; //初始化数组         for(int i=0;i<m;i++)Subject[i]=0.0; //必须初始化数组         int Number=0;           //存储人数         for(int i=0;i<n;i++)        {               for(int k=0;k<m;k++)            {                cin>>a[i][k];       //创造行列                 Student[i]+=a[i][k];    //存储每个学生的总成绩                 Subject[k]+=a[i][k];    //存储每个学科的总成绩             }        }         for(int i=0;i<n;i++)        {               for(int k=0;k<m;k++)            {                   if(a[i][k]<Subject[k]/n)break;          //比较每个学生各科成绩 。。。SB如我看成平均成绩                 else if(k==m-1) Number++;               //判断             }        }        //输出数据        for(int i=0;i<n;i++){//输出学生平均成绩         printf("%.2f",Student[i]/m);if(i<n-1)cout<<" "; }           cout<<endl;        for(int i=0;i<m;i++){//输出每门课程平均成绩         printf("%.2f",Subject[i]/n);if(i<m-1)cout<<" "; }           cout<<endl<<Number<<endl<<endl; //输出人数         for(int i=0;i<m;i++)    //释放空间,养成好习惯         {            delete [] a[i];        }delete [] a;         delete [] Student;         delete [] Subject;     }    return 0;}
原创粉丝点击