2019年CSP-X复赛真题及题解(T3:统计成绩)
题目描述
n
n
n 位同学参加了期中考试,考试共有
m
m
m 门课程。
考试结束之后,老师想知道:每位同学有几门课程达到或超过了课程的班级平均分?
现在,请你帮忙统计一下。
输入格式
第一行,两个正整数
n
,
m
n,m
n,m,
n
n
n 表示学生总人数,
m
m
m 表示课程数量。
接下来
n
n
n 行,每行
m
m
m 个整数,表示一位同学的成绩。
输出格式
共
n
n
n 行,每行一个整数,表示该同学达到或超过平均分的课程数量。
输入输出样例 1
输入 1
5 3
81 80 86
55 74 79
92 47 99
50 65 41
42 61 74
输出 1
3
2
2
0
0
说明/提示
3
3
3 门课程的平均分依次为:
64
,
65.4
,
75.79
64,65.4,75.79
64,65.4,75.79;
5
5
5 位同学分别有
3
,
2
,
2
,
0
,
0
3,2,2,0,0
3,2,2,0,0 门课程达到或超过了课程平均分。
对于
100
%
100\\%
100% 的数据:
1
≤
n
≤
100
,
1
≤
m
≤
20
1\\leq n\\leq 100,1\\leq m\\leq 20
1≤n≤100,1≤m≤20,输入的成绩
w
i
,
j
w_{i,j}
wi,j 满足
0
≤
w
i
,
j
≤
100
0\\leq w_{i,j}\\leq 100
0≤wi,j≤100。
思路分析
- 成绩 × 人数 ≥ 该科总分
代码实现
#include <bits/stdc++.h>
using namespace std;
int n,m;
int a[105][25],s[25];//a存成绩,s存每科总分
int main(){
cin>>n>>m;//读入人数和科目数
for(int i=1;i<=n;i++){//遍历学生
for(int j=1;j<=m;j++){//遍历科目
cin>>a[i][j];//读成绩
s[j]+=a[i][j];//累加该科总分
}
}
for(int i=1;i<=n;i++){//遍历每个学生
int c=0;//达标科目数
for(int j=1;j<=m;j++){//遍历科目
if(a[i][j]*n>=s[j]) c++;//成绩*n>=总分即达到平均分
}
cout<<c<<"\\n";//输出
}
return 0;
}
功能分析
- n 表示学生人数,m 表示科目数量。
- 二维数组 a 存储所有同学的所有科目成绩,一维数组 s 存储每门课的总分。
- 先读入数据并累加总分,再对每个同学逐一判断每科成绩是否达标。
- 判断时使用整数比较 成绩 × n >= 总分,完全等价于 成绩 >= 平均分,且避免了浮点数误差。
- 时间复杂度为 O(n*m),空间复杂度为 O(n*m)。
更多内容请关注专栏:信奥赛C++普及组csp-j初赛&复赛真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转
【秘籍汇总】(完整csp信奥赛C++学习资料):
1、csp/信奥赛C++,完整信奥赛系列课程(永久学习):
https://edu.csdn.net/lecturer/7901 点击跳转

2、CSP信奥赛C++竞赛拿奖视频课:
https://edu.csdn.net/course/detail/40437 点击跳转
https://edu.csdn.net/course/detail/41081 点击跳转 
3、csp信奥赛高频考点知识详解及案例实践:
CSP信奥赛C++动态规划: https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转
CSP信奥赛C++标准模板库STL: https://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转
信奥赛C++提高组csp-s知识详解及案例实践: https://blog.csdn.net/weixin_66461496/category_13113932.html 点击跳转
4、csp信奥赛冲刺一等奖有效刷题题解:
信奥赛C++普及组CSP-J一等奖通关刷题题单及题解: https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转
信奥赛C++普及组csp-j初赛&复赛真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转
信奥赛C++提高组csp-s初赛&复赛真题题解(持续更新): https://blog.csdn.net/weixin_66461496/category_13125089.html 点击跳转
5、GESP C++考级真题题解:

GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转

GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转
GESP(C++ 七级+八级)真题题解(持续更新): https://blog.csdn.net/weixin_66461496/category_13117178.html 点击跳转
· 文末祝福 ·
#include<bits/stdc++.h>
using namespace std;
int main(){
cout<<"跟着王老师一起学习信奥赛C++";
cout<<" 成就更好的自己! ";
cout<<" csp信奥赛一等奖属于你! ";
return 0;
}






