问题标题: 酷町堂:4470 成绩统计(score) 萌新求助大佬

1
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

董宇昊在2020-06-17 20:28:50追加了内容

没有分的代码

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<string>
using namespace std;
int main(){
  	double a,b,c,d,x[1001],sum=-1,ans=0,cnt=0,dh=0,dy=0;
  	cin>>a>>b>>c>>d;
	for(int i=1;i<=a;i++){
		for(int j=1;j<=b;j++){
			cin>>x[j];
		}
	}
	for(int i=1;i<=a;i++){
		sum=0;
		for(int j=1;j<=b;j++){
			if(x[j]>sum) sum=x[j];
		}
		cout<<sum<<' ';
	}
	cout<<endl;
	for(int i=1;i<=a;i++){
		cnt=0;
		ans=0;
		for(int j=1;j<=b;j++){
			cnt+=x[j];
			ans++;
	    }
		printf("%.1f ",int((cnt/ans)*10+0.5)/10.0);
	}
	cout<<endl;
	for(int i=1;i<=a;i++){
		for(int j=1;j<=b;j++){
			if(x[j]>c) dh++;
			else if(x[j]<d) dy++;
	    }
	}
	cout<<dh<<' '<<dy;
    return 0;
}

求大佬找错

采纳是加到100;


0
已采纳
被禁言 何冯成
何冯成
中级光能
中级光能

你这题写的太麻烦了

我记得有一次课堂例题有这道题,你找找看

0
0
董宇昊
董宇昊
初级启示者
初级启示者

不要整段代码和网址

只要思路!!

我要回答