问题标题: 酷町堂:4470

0
0
已解决
李致远
李致远
高级光能
高级光能

4470   成绩统计(score)经验值:0

题目描述 Description

合肥市某学校某年级共有 m 个班,每个班级都有 n 位学生。某次考试结束后,知道了每位学生的总分(整数),现在还要再统计一些数据:
1)每个班级的最高得分
2)每个班级的平均得分(四舍五入,保留一位小数)
3)所有学生总分低于一个分值 p 的人数和高于一个分值 q 的人数。

输入描述 Input Description

输入数据共 m+1 行。第一行是 4 个由空格分隔的正整数 m、n、p、q,接下来 m 行,每行共有 n 个由空格分隔的正整数,表示每一位学生的总分

输出描述 Output Description

共 3 行,第一行 m 个由空格分隔的正整数,对应每个班级的最高分;第二行 m 个由空格分隔的数值,对应每个班级的平均分;第三行 2 个由空格分隔的正整数,分别表示低于 p 的人数和高于 q 的人数。

样例输入 Sample Input

3 4 150 290 260 300 140 190 290 280 260 270 190 280 300 190

样例输出 Sample Output

300 290 300 222.5 275.0 240.0 1 2

数据范围及提示 Data Size & Hint

数据范围:
1≤m,n≤100 0≤每个学生总分≤300

#include<iostream>//哇塞!30分代码!快看!!!
using namespace std;
int a[301][301];
double sum,b[301];
int maxn=-0x3f3f3f3f;
int ans;
int main(){
    int m,n,p,q,cur=0;
    cin>>n>>m>>p>>q;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>a[i][j];
            sum+=a[i][j];
            maxn=max(a[i][j],maxn);
            cur++;
        }
        cout<<maxn<<" ";
        maxn=0;
        b[i]=sum*1.0/cur;
        sum=0;
        cur=0;
    }
    cout<<endl;
    for(int i=1;i<=n;i++){
        if((int)b[i]!=b[i])cout<<b[i]<<" ";
        else cout<<b[i]<<".0 ";
    }
    cout<<endl;
    int ans1=0,ans2=0;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(a[i][j]<p)ans1++;
            if(a[i][j]>q)ans2++;
        }
    }
    cout<<ans1<<" "<<ans2;
    return 0;
}

 

李致远在2020-08-31 16:50:12追加了内容

找错,找错兄弟们!!!


0
已采纳
王子健
王子健
初级天翼
初级天翼

用一维数组,输入m个长度为n的一维数组来写,好写很多

然后最大值存到一个数组,平均数存到一个数组

0
胡景波
胡景波
中级光能
中级光能
 
for(int j=1;j<=n;j++)
        {
            cin>>a[j];
            pj[i]=pj[i]+a[j];
            if(a[j]>max[i]) 
            {
                max[i]=a[j];
            } 
            if(a[j]<p)
                sp++;
            if(a[j]>q)
                sq++;
        }

这是统计

0
邓涵睿
邓涵睿
中级天翼
中级天翼

核心放出

  • for(int i=1;i<=m;i++){
  • for(int j=1;j<=n;j++){
  • cin>>a[j];
  • maxn[i]=max(maxn[i],a[j]);
  • sum[i]+=a[j];
  • if(a[j]<p) xyp++;
  • if(a[j]>q) dyq++;
  • }
  • pj[i]=sum[i]*1.0/n;
  • }
我要回答